Loading...
Searching...
No Matches
logger.hpp
Go to the documentation of this file.
1
2#pragma once
3
7
8namespace by {
9
79 class _nout logger: public stream {
80 BY_ME(logger, stream)
81
82 public:
83 stream* getStream(nidx n);
84 const stream* getStream(nidx n) const BY_CONST_FUNC(getStream(n))
85 stream* getStream(const nchar* msg);
86 const stream* getStream(const nchar* msg) const BY_CONST_FUNC(getStream(msg))
87 stream* getStream(const std::string& msg);
88 const stream* getStream(const std::string& msg) const BY_CONST_FUNC(getStream(msg))
89
90 nbool isEnable() const override;
91 void setEnable(nbool enable) override;
92 enables getEnables() const;
93 void setEnables(const enables& enbs);
94 ncnt getStreamCount() const;
95
100 nbool logFormatBypass(const nchar* fmt, ...);
101
106 nbool log(errLv::level lv, const std::string& filename, const nchar* func, int line, const nchar* fmt, ...);
107
117 nbool pushStream(stream* new_stream);
123 nbool pushStream(stream& new_stream);
124
128 static logger& get();
129
130 // stream:
131 const std::string& getName() const override;
132
133 using super::logBypass;
134
139 nbool logBypass(const nchar* message) override;
140
141 nbool isInit() const override;
142
146 void setFilters(const filters& newFilters);
147
152
153 const filters& getFilters() const;
154
155 private:
156 // Logger:
157 logger();
158 logger(const logger& rhs);
159 // stream:
160 nbool init() override;
161 nbool rel() override;
162
163 std::string _makeStr(const nchar* fmt, ...);
164 std::string _makeStr(const nchar* fmt, va_list va);
165
166 private:
167 std::vector<stream*> _streams;
168 const filters* _filters;
169 };
170
171 logger& operator<<(logger& log, const std::string& msg);
172} // namespace by
Collection of filterable objects for logging control.
Definition filters.hpp:16
Main logging interface for the byeol language system.
Definition logger.hpp:79
nbool pushStream(stream &new_stream)
Adds a new logging stream to the logger.
nbool logFormatBypass(const nchar *fmt,...)
Logs formatted message bypassing rich logging conversion.
void setFilters(const filters &newFilters)
Set logging filters.
nbool log(errLv::level lv, const std::string &filename, const nchar *func, int line, const nchar *fmt,...)
Main logging function with full context information.
void setFilters()
Reset filters to default.
nbool pushStream(stream *new_stream)
Adds a new logging stream to the logger.
nbool logBypass(const nchar *message) override
Log message bypassing normal filtering.
static logger & get()
Get singleton logger instance.
Base class for all logging output streams.
Definition stream.hpp:13