20 #ifndef _ANCH_LOGGER_LOGGER_H_ 21 #define _ANCH_LOGGER_LOGGER_H_ 27 #include "logger/levels.hpp" 28 #include "logger/writer.hpp" 56 std::vector<anch::logger::Writer*> _writers;
66 Logger(
const std::string& name,
68 const std::vector<anch::logger::Writer*>& writers);
82 template<
typename T,
typename... Q>
83 void trace(
const T& value,
const Q&... values)
const noexcept {
84 log(Level::TRACE, value, values...);
93 template<
typename T,
typename... Q>
94 void debug(
const T& value,
const Q&... values)
const noexcept {
95 log(Level::DEBUG, value, values...);
104 template<
typename T,
typename... Q>
105 void info(
const T& value,
const Q&... values)
const noexcept {
106 log(Level::INFO, value, values...);
115 template<
typename T,
typename... Q>
116 void warn(
const T& value,
const Q&... values)
const noexcept {
117 log(Level::WARN, value, values...);
126 template<
typename T,
typename... Q>
127 void error(
const T& value,
const Q&... values)
const noexcept {
128 log(Level::ERROR, value, values...);
137 template<
typename T,
typename... Q>
138 void fatal(
const T& value,
const Q&... values)
const noexcept {
139 log(Level::FATAL, value, values...);
152 void log(
const Level& level,
153 std::ostringstream& out,
154 const T& value)
const noexcept {
156 const std::string& message = out.str();
157 for(
size_t i = 0 ; i < _writers.size() ; i++) {
158 _writers[i]->write(_name, level, message);
169 template<
typename T,
typename... Q>
170 void log(
const Level& level,
172 const Q&... values)
const noexcept {
173 if(level >= _level && !_writers.empty()) {
174 std::ostringstream out;
175 log(level, out, value, values...);
187 template<
typename T,
typename... Q>
188 void log(
const Level& level,
189 std::ostringstream& out,
191 const Q&... values)
const noexcept {
193 log(level, out, values...);
201 #endif // _ANCH_LOGGER_LOGGER_H_ Logger(const std::string &name, const anch::logger::Level level, const std::vector< anch::logger::Writer * > &writers)
Definition: logger.cpp:37
void trace(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:83
void info(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:105
Definition: logger.hpp:47
virtual ~Logger()
Definition: logger.cpp:51
void warn(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:116
AnCH framework base namespace.
Definition: base64.hpp:28
void fatal(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:138
void error(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:127
Level
Definition: levels.hpp:34
void debug(const T &value, const Q &...values) const noexcept
Definition: logger.hpp:94