72 static const int MAX_ROLLING_KEEP = 20;
73 static const int MIN_MAX_FILE_SIZE_KB = 50;
74 static const int MAX_LOG_ENTRY_SIZE = 100000;
76 static const uint16_t TRIGGER_DATE_CHANGE = 0x0001U;
77 static const uint16_t TRIGGER_HOUR_CHANGE = 0x0002U;
78 static const uint16_t ROLLING_ARCHIVE = 0x0004U;
80 static const char* sinkTypeName[] {
"file",
"console",
"error"};
81 static const char* logLevelName[] {
"NONE",
"FATAL",
"CRITICAL",
"ERROR",
"WARNING",
"INFO",
"DEBUG",
"TRACE",
"ALL"};
95 DynaLoggerMap* _loggerMap;
96 DynaOutputTypeMap* _outputTypeMap;
97 DynaOutputFileMap* _outputFileMap;
98 DefaultSinkSet* _defSinkSet;
103 bool _disableColours;
112 static void deleteSingleton();
118 String& getRootLogDirectory();
119 bool setRootLogDirectory(
const char* directory);
121 bool registerLogger(
const char* name,
DynaLogger* logger);
123 void setAutoFlushAll(
bool autoFlushAll);
124 bool isAutoFlushAll();
125 void setDisableColours(
bool disableColours);
126 bool isDisableColours();
131 bool enableOutputSink(
SinkType type,
bool enable);
132 bool enableOutputSink(
const char* fileNamePrefix,
bool enable);
141 bool removeDefaultSink(
SinkType type);
142 bool removeDefaultSink(
const char* fileNamePrefix);
143 DefaultSinkSet* getDefaultSinks();
144 void initAllLoggers();
159 void setLoggerLogLevels(
const char* loggerName,
LogLevel minLevel,
LogLevel maxLevel,
bool resetOverride =
false);
161 void setOutputLogLevels(
const char* filePrefixName,
LogLevel minLevel,
LogLevel maxLevel,
bool resetOverride =
false);
169 void updateLoggerLogLevels(
const char* name,
bool resetOverride =
false);
170 void updateAllLogLevels(
bool resetOverride =
false);
206 void setAutoFlush(
bool autoFlush);
208 void setEnabled(
bool enabled);
213 void setMinLogLevel(
LogLevel minLevel);
214 void setMaxLogLevel(
LogLevel maxLevel);
215 void setLogLevels(
LogLevel minLevel,
LogLevel maxLevel,
bool override =
true);
242 bool isLevelOverride();
244 virtual bool appendToQueue(
LogLevel level,
const char* outStr);
245 virtual void flush();
257 bool appendToQueue(
LogLevel level,
const char* outStr)
override;
258 void flush()
override;
271 bool appendToQueue(
LogLevel level,
const char* outStr)
override;
272 void flush()
override;
279 uint16_t _filePolicies;
280 uint64_t _maxFileSize;
297 String& getFileNamePrefix();
301 void setPolicies(uint16_t policyBits);
302 void clearPolicies(uint16_t policyBits);
303 void setMaxFileSizeKB(uint32_t maxSize);
304 uint64_t getMaxFileSizeKB();
305 void setRollingMaxKeep(
int maxKeepFiles);
306 int getRollingMaxKeep();
311 tm getCurrentTimeInfo();
312 bool fileNeedsToChange();
313 void shuffleFileNames(
String& fileName,
int index);
314 void getNextFileName();
316 bool appendToQueue(
LogLevel level,
const char* outStr)
override;
317 void flush()
override;
323 DynaAppenderTypeMap* _appenderTypeMap;
324 DynaAppenderFileMap* _appenderFileMap;
330 bool _compactConsoleDebug;
336 void _log(
LogLevel level,
const char* msg, va_list args);
350 static DynaLogger* getLogger(
const char* name,
bool addDefAppenders =
true);
352 void addDefaultAppenders();
353 void setTraceCount(
long count);
354 long getTraceCount();
355 void resetTraceCounter();
356 void setCompactConsoleDebug(
bool compactOn);
364 bool removeAppender(
const char* fileNamePrefix);
369 void setMinLogLevel(
LogLevel minLevel);
370 void setMaxLogLevel(
LogLevel maxLevel);
371 void setLogLevels(
LogLevel minLevel,
LogLevel maxLevel,
bool override =
true);
373 void setAppenderLogLevels(
const char* filePrefixName,
LogLevel minLevel,
LogLevel maxLevel);
375 bool isLevelOverride();
377 void updateAppenderLogLevels(
SinkType type,
bool resetOverride =
false);
378 void updateAppenderLogLevels(
const char* fileNamePrefix,
bool resetOverride =
false);
379 void updateAllAppenderLogLevels(
bool resetOverride =
false);
381 void log(
LogLevel level,
const char* msg, ...);
382 void fatal(
const char* msg, ...);
383 void critical(
const char* msg, ...);
384 void error(
const char* msg, ...);
385 void warning(
const char* msg, ...);
386 void info(
const char* msg, ...);
387 void debug(
const char* msg, ...);
388 void trace(
const char* msg, ...);
405 static DynaAppender* getFileAppender(
const char* fileNamePrefix);
420 void setMinLogLevel(
LogLevel minLevel);
421 void setMaxLogLevel(
LogLevel maxLevel);
422 void setLogLevels(
LogLevel minLevel,
LogLevel maxLevel,
bool override =
true);
424 bool isLevelOverride();
430 bool append(
LogLevel level,
const char* outStr);
Definition: DynaLogger.h:68
bool _levelOverride
Definition: DynaLogger.h:397
DynaLoggerManager * _mgr
Definition: DynaLogger.h:184
CONSTCD11 bool operator==(const day &x, const day &y) NOEXCEPT
Definition: date.h:1274
Definition: DynaLogger.h:92
Definition: IHashable.h:10
IntWrapper< SinkType > ESinkType
Definition: DynaLogger.h:83
bool _enabled
Definition: DynaLogger.h:181
Definition: DynaLogger.h:173
LogLevel getMaxLogLevel()
Definition: DynaLogger.cpp:425
LogLevel _minLogLevel
Definition: DynaLogger.h:395
SinkType
Definition: DynaLogger.h:68
LogLevel _minLogLevel
Definition: DynaLogger.h:176
void setLogLevel(LogLevel level)
Definition: DynaLogger.cpp:429
DynaLogger * logger
Definition: Manager.cpp:23
std::chrono::time_point< Clock, Duration > time_point
Definition: tz.h:2265
Definition: DynaLogger.h:261
Definition: DynaLogger.h:67
void setLogLevels(LogLevel minLevel, LogLevel maxLevel, bool override=true)
Definition: DynaLogger.cpp:447
ANSIColors
Definition: DynaLogger.h:70
Definition: DynaLogger.h:67
Definition: DynaLogger.h:67
Definition: DynaLogger.h:391
Definition: DynaLogger.h:68
void setMinLogLevel(LogLevel minLevel)
Definition: DynaLogger.cpp:435
auto format(const std::locale &loc, const CharT *fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT > &>(), fmt, tp), std::basic_string< CharT >
Definition: date.h:5663
SinkType _type
Definition: DynaLogger.h:175
void t1(Test &test, int &counter)
Definition: TestSynch.cpp:38
bool _levelOverride
Definition: DynaLogger.h:178
LogLevel getMinLogLevel()
Definition: DynaLogger.cpp:421
DynaOutputSink * _output
Definition: DynaLogger.h:394
Definition: IntWrapper.h:13
Definition: DynaLogger.h:67
Definition: DynaLogger.h:67
Definition: DynaLogger.h:321
LogLevel _maxLogLevel
Definition: DynaLogger.h:396
MAKE_MAPTYPE_DEF(String, DynaLogger, DynaLogger)
SinkType _type
Definition: DynaLogger.h:393
ANSIColors _colors
Definition: DynaLogger.h:179
LogLevel _maxLogLevel
Definition: DynaLogger.h:177
Definition: DynaLogger.h:67
bool _autoFlush
Definition: DynaLogger.h:180
Definition: DynaLogger.h:70
LogLevel
From coarsest to finest setting. FATAL produces the least output, while TRACE produces the most...
Definition: DynaLogger.h:67
Definition: DynaLogger.h:67
Definition: DynaLogger.h:67
Definition: DynaLogger.h:70
Definition: DynaLogger.h:70
Definition: DynaLogger.h:68
int hashCode(bool key)
Definition: HashCoder.cpp:27
Definition: ICopyable.h:8
void setMaxLogLevel(LogLevel maxLevel)
Definition: DynaLogger.cpp:441
MAKE_SETTYPE_DEF(DynaOutputSink, DefaultSink)
Definition: DynaLogger.h:275
Definition: DynaLogger.h:248