summaryrefslogtreecommitdiff
path: root/louloulibs/logger
diff options
context:
space:
mode:
Diffstat (limited to 'louloulibs/logger')
-rw-r--r--louloulibs/logger/logger.cpp42
-rw-r--r--louloulibs/logger/logger.hpp128
2 files changed, 0 insertions, 170 deletions
diff --git a/louloulibs/logger/logger.cpp b/louloulibs/logger/logger.cpp
deleted file mode 100644
index 92a3d9b..0000000
--- a/louloulibs/logger/logger.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <logger/logger.hpp>
-#include <config/config.hpp>
-
-Logger::Logger(const int log_level):
- log_level(log_level),
- stream(std::cout.rdbuf()),
- null_buffer{},
- null_stream{&null_buffer}
-{
-}
-
-Logger::Logger(const int log_level, const std::string& log_file):
- log_level(log_level),
- ofstream(log_file.data(), std::ios_base::app),
- stream(ofstream.rdbuf()),
- null_buffer{},
- null_stream{&null_buffer}
-{
-}
-
-std::unique_ptr<Logger>& Logger::instance()
-{
- static std::unique_ptr<Logger> instance;
-
- if (!instance)
- {
- const std::string log_file = Config::get("log_file", "");
- const int log_level = Config::get_int("log_level", 0);
- if (log_file.empty())
- instance = std::make_unique<Logger>(log_level);
- else
- instance = std::make_unique<Logger>(log_level, log_file);
- }
- return instance;
-}
-
-std::ostream& Logger::get_stream(const int lvl)
-{
- if (lvl >= this->log_level)
- return this->stream;
- return this->null_stream;
-}
diff --git a/louloulibs/logger/logger.hpp b/louloulibs/logger/logger.hpp
deleted file mode 100644
index b3284a6..0000000
--- a/louloulibs/logger/logger.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-#pragma once
-
-
-/**
- * Singleton used in logger macros to write into files or stdout, with
- * various levels of severity.
- * Only the macros should be used.
- * @class Logger
- */
-
-#include <memory>
-#include <iostream>
-#include <fstream>
-
-#define debug_lvl 0
-#define info_lvl 1
-#define warning_lvl 2
-#define error_lvl 3
-
-#include "louloulibs.h"
-#ifdef SYSTEMD_FOUND
-# include <systemd/sd-daemon.h>
-#else
-# define SD_DEBUG "[DEBUG]: "
-# define SD_INFO "[INFO]: "
-# define SD_WARNING "[WARNING]: "
-# define SD_ERR "[ERROR]: "
-#endif
-
-// Macro defined to get the filename instead of the full path. But if it is
-// not properly defined by the build system, we fallback to __FILE__
-#ifndef __FILENAME__
-# define __FILENAME__ __FILE__
-#endif
-
-
-/**
- * A buffer, used to construct an ostream that does nothing
- * when we output data in it
- */
-class NullBuffer: public std::streambuf
-{
- public:
- int overflow(int c) { return c; }
-};
-
-class Logger
-{
-public:
- static std::unique_ptr<Logger>& instance();
- std::ostream& get_stream(const int);
- Logger(const int log_level, const std::string& log_file);
- Logger(const int log_level);
-
- Logger(const Logger&) = delete;
- Logger& operator=(const Logger&) = delete;
- Logger(Logger&&) = delete;
- Logger& operator=(Logger&&) = delete;
-
-private:
- const int log_level;
- std::ofstream ofstream{};
- std::ostream stream;
-
- NullBuffer null_buffer;
- std::ostream null_stream;
-};
-
-#define WHERE __FILENAME__, ":", __LINE__, ":\t"
-
-namespace logging_details
-{
- template <typename T>
- void log(std::ostream& os, const T& arg)
- {
- os << arg << std::endl;
- }
-
- template <typename T, typename... U>
- void log(std::ostream& os, const T& first, U&&... rest)
- {
- os << first;
- log(os, std::forward<U>(rest)...);
- }
-
- template <typename... U>
- void log_debug(U&&... args)
- {
- auto& os = Logger::instance()->get_stream(debug_lvl);
- os << SD_DEBUG;
- log(os, std::forward<U>(args)...);
- }
-
- template <typename... U>
- void log_info(U&&... args)
- {
- auto& os = Logger::instance()->get_stream(info_lvl);
- os << SD_INFO;
- log(os, std::forward<U>(args)...);
- }
-
- template <typename... U>
- void log_warning(U&&... args)
- {
- auto& os = Logger::instance()->get_stream(warning_lvl);
- os << SD_WARNING;
- log(os, std::forward<U>(args)...);
- }
-
- template <typename... U>
- void log_error(U&&... args)
- {
- auto& os = Logger::instance()->get_stream(error_lvl);
- os << SD_ERR;
- log(os, std::forward<U>(args)...);
- }
-}
-
-#define log_info(...) logging_details::log_info(WHERE, __VA_ARGS__)
-
-#define log_warning(...) logging_details::log_warning(WHERE, __VA_ARGS__)
-
-#define log_error(...) logging_details::log_error(WHERE, __VA_ARGS__)
-
-#define log_debug(...) logging_details::log_debug(WHERE, __VA_ARGS__)
-
-
-