24 using Message = LogStream::Message;
27 void append(uint8_t,
const std::string &,
const std::string &,
const std::string & = {});
28 void setExtendOut(
bool b);
29 void setColorOut(
bool b);
30 void setNotesOut(
bool b);
31 void setHideDuplicates(
bool b);
33 void setConsoleLevel(
int i);
34 void setFilter(
const std::vector<std::string> &f);
37 virtual void output(
const Message &message);
38 virtual void save() = 0;
39 void append(
const Message &m);
42 uint8_t level = LogStream::Trace;
43 uint8_t consoleLevel = LogStream::Trace;
55 void startTimer(
int *,
int);
56 void stopTimer(
int *);
57 void process(
const Message &);
58 uint8_t flags = LOG_STREAM_CONSOLE_EXTEND
60 | LOG_STREAM_CONSOLE_COLOR
63 std::queue<Message> messages;
64 LastMessage lastMessages[_messages_];
65 bool hideDuplicates =
false;
66 std::vector<std::string> filter;
73 using Message = LogStream::Message;
74 using MessageType = LogStream::MessageType;
75 using Color = LogStream::Color;
77 using AbstractLog::append;
79 inline static Log *instance() {
return instance_.value; }
81 Log(
int = 0,
const std::string & = {});
86 void output(
const Message &m)
override;
88 void setAutoSave(
bool b) { autoSave = (b) ? 100 : -1; }
89 Rrd::Item rrdItemFromMessage(
const Message &m)
const;
90 Message messageFromRrdItem(
const Rrd::Item &_v)
const;
91 Message readMessage(uint32_t index) {
return messageFromRrdItem(readFromArray(index)); }
92 void writeMessage(uint32_t index,
const Message &message) { writeToArray(index, rrdItemFromMessage(message)); }
94 void save()
override {
95 if (!Rrd::readOnly) Rrd::save();
99 using AbstractLog::thread_;
101 int timerIdAutosave = -1;
106 void created()
override;
108 static void lsAppend(
const Message &m, uint8_t t);