Diarkis C++Client Library API Document
Logger.h
Go to the documentation of this file.
1 // © 2019-2024 Diarkis Inc. All rights reserved.
2 
3 #pragma once
4 
5 #include "diarkis/common.h"
6 
7 #if !defined(NDEBUG) || defined(DIARKIS_DEBUG_FEATURES)
8 #define DIARKIS_LOG(logger, severity, ...) if (logger != nullptr) logger->Log(severity, StringFormat("[%s] %s", __FUNCTION__, StringFormat(__VA_ARGS__)))
9 #define DIARKIS_ERROR_LOG(logger, severity, msg, code, errString ) \
10  if (logger != nullptr) \
11  { \
12  if (code==0) \
13  { \
14  DIARKIS_LOG(logger, severity, "%s errorMsg=%s", msg, errString); \
15  } \
16  else \
17  { \
18  DIARKIS_LOG(logger, severity, "%s errCode=%d errorMsg=%s", msg, code, errString); \
19  } \
20  }
21 #define DIARKIS_BACKEND_LOG(backend, ...) if (backend != nullptr) backend->Log(StringFormat("[%s] %s", __FUNCTION__, StringFormat(__VA_ARGS__)))
22 #else
23 #define DIARKIS_LOG(logger, severity, ...) {(void)logger; (void)severity;}
24 #define DIARKIS_ERROR_LOG(logger, severity, msg, code, errString) {(void)logger; (void)severity; (void)msg, (void)code, (void)errString;}
25 #define DIARKIS_BACKEND_LOG(backend, ...) {(void)backend;}
26 #endif
27 
28 #define DIARKIS_TRACEOUTPUT_DEFAULT 32
29 #define DIARKIS_TRACEOUTPUT_MAX 1400
30 
31 // ADD NAMESPACE NAME TAG
32 namespace Diarkis
33 {
40 enum class DiarkisLoggerSeverity: std::uint8_t
41 {
44  Trace = 0,
46  Verbose,
48  Debug,
50  Info,
52  Warning,
54  Error,
56  Fatal,
58  None
59 };
60 
69 class DIARKIS_EXPORT IDiarkisLogger
70 {
71  public:
78  virtual const StdString GetCategory() = 0;
85  virtual DiarkisLoggerSeverity GetSeverity() = 0;
92  virtual void SetSeverity(DiarkisLoggerSeverity severity) = 0;
99  virtual void SetServerType(const StdString& type) = 0;
106  virtual size_t GetTraceOutputBytes() = 0;
113  virtual void SetTraceOutputBytes(size_t bytes) = 0;
128  virtual void Log(DiarkisLoggerSeverity severity, const StdString& message, bool includeNewLine = true) = 0;
129 };
130 }
131 // ADD NAMESPACE } TAG
Diarkis::DiarkisLoggerSeverity::None
@ None
No log.
Diarkis::DiarkisLoggerSeverity
DiarkisLoggerSeverity
Log severity level.
Definition: Logger.h:40
Diarkis::IDiarkisLogger
Interface class for manipulating logging functions.
Definition: Logger.h:69
Diarkis::StdString
Definition: common.h:432
Diarkis::DiarkisLoggerSeverity::Debug
@ Debug
Displays debug, info, warning, error, and fatal level.
Diarkis::DiarkisLoggerSeverity::Fatal
@ Fatal
Displays only fatal level.
Diarkis::DiarkisLoggerSeverity::Info
@ Info
Displays info, warning, error, and fatal level.
Diarkis::DiarkisLoggerSeverity::Warning
@ Warning
Displays warning, error, and fatal level.
Diarkis
Definition: commands.h:9
Diarkis::DiarkisLoggerSeverity::Verbose
@ Verbose
Displays verbose, debug, info, warning, error, and fatal level.
common.h
Diarkis::DiarkisLoggerSeverity::Trace
@ Trace
Diarkis::DiarkisLoggerSeverity::Error
@ Error
Displays fatal and error level.