logger.hpp
Go to the documentation of this file.
1
2#pragma once
3
7
8namespace by {
9
15 class _nout logger: public stream {
16 BY_ME(logger, stream)
17
18 public:
19 stream* getStream(nidx n);
20 const stream* getStream(nidx n) const BY_CONST_FUNC(getStream(n))
21 stream* getStream(const nchar* msg);
22 const stream* getStream(const nchar* msg) const BY_CONST_FUNC(getStream(msg))
23 stream* getStream(const std::string& msg);
24 const stream* getStream(const std::string& msg) const BY_CONST_FUNC(getStream(msg))
25
26 nbool isEnable() const override;
27
30 void setEnable(nbool enable) override;
31 enables getEnables() const;
32 void setEnables(const enables& enbs);
33 ncnt getStreamCount() const;
34 nbool logFormatBypass(const nchar* fmt, ...);
35 nbool log(errLv::level lv, const std::string& filename, const nchar* func, int line, const nchar* fmt, ...);
36
37 nbool pushStream(stream* new_stream);
38 nbool pushStream(stream& new_stream);
39
41 static logger& get();
42
43 // stream:
44 const std::string& getName() const override;
45
46 using super::logBypass;
49 nbool logBypass(const nchar* message) override;
50
51 nbool isInit() const override;
52 // filter:
55 void setFilters(const filters& newFilters);
57 void setFilters();
59 const filters& getFilters() const;
60
61 private:
62 // Logger:
63 logger();
64 logger(const logger& rhs);
65 // stream:
66 nbool init() override;
67 nbool rel() override;
68
69 std::string _makeStr(const nchar* fmt, ...);
70 std::string _makeStr(const nchar* fmt, va_list va);
71
72 private:
73 std::vector<stream*> _streams;
74 const filters* _filters;
75 };
76
77 logger& operator<<(logger& log, const std::string& msg);
78} // namespace by
Collection of filterable objects for logging control.
Definition: filters.hpp:11
Function definition in byeol language.
Definition: func.hpp:20
Main logging interface for the byeol language system.
Definition: logger.hpp:15
void setFilters(const filters &newFilters)
Set logging filters.
void setEnable(nbool enable) override
Enable or disable all logging streams.
void setFilters()
Reset filters to default.
nbool logBypass(const nchar *message) override
Log message bypassing normal filtering.
static logger & get()
Get singleton logger instance.
const filters & getFilters() const
Get current filter configuration.
Base class for all logging output streams.
Definition: stream.hpp:12