Belle II Software  release-08-01-10
LogConfig.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 namespace Belle2 {
22  class LogConfig {
23  public:
24 
26  enum ELogLevel { c_Debug,
32  c_Default
33  };
34 
36  enum ELogInfo { c_Level = 0x01,
37  c_Message = 0x02,
38  c_Module = 0x04,
39  c_Package = 0x08,
40  c_Function = 0x10,
41  c_File = 0x20,
42  c_Line = 0x40,
43  c_Timestamp = 0x80,
44  c_NoVariables = 0x100,
45  };
46 
48  enum ELogRealm { c_None,
51  };
52 
53  static const int c_DefaultDebugLevel = 10;
61  LogConfig(ELogLevel logLevel = c_Default, int debugLevel = c_DefaultDebugLevel);
62 
69  static const char* logLevelToString(ELogLevel logLevelType);
70 
77  static const char* logRealmToString(ELogRealm realm);
78 
84  void setLogLevel(ELogLevel logLevel);
85 
91  ELogLevel getLogLevel() const {return m_logLevel; }
92 
98  void setDebugLevel(int debugLevel) {m_debugLevel = debugLevel; }
99 
105  int getDebugLevel() const {return m_debugLevel; }
106 
112  void setAbortLevel(ELogLevel abortLevel) {m_abortLevel = abortLevel; }
113 
120 
127  void setLogInfo(ELogLevel logLevel, unsigned int logInfo) {m_logInfo[logLevel] = logInfo; }
128 
134  unsigned int getLogInfo(ELogLevel logLevel) const {return m_logInfo[logLevel]; }
135 
136 
137  private:
138 
143  unsigned int m_logInfo[c_Default];
144 
145  };
146 
148 } // end namespace Belle2
The LogConfig class.
Definition: LogConfig.h:22
ELogLevel m_abortLevel
The log level at which the execution should be stopped.
Definition: LogConfig.h:141
int m_debugLevel
The debug messaging level.
Definition: LogConfig.h:140
int getDebugLevel() const
Returns the configured debug messaging level.
Definition: LogConfig.h:105
unsigned int m_logInfo[c_Default]
The kind of printed information per log level.
Definition: LogConfig.h:143
LogConfig(ELogLevel logLevel=c_Default, int debugLevel=c_DefaultDebugLevel)
The LogConfig constructor.
Definition: LogConfig.cc:17
ELogLevel m_logLevel
The log messaging level.
Definition: LogConfig.h:139
ELogLevel getLogLevel() const
Returns the configured log level.
Definition: LogConfig.h:91
void setDebugLevel(int debugLevel)
Configure the debug messaging level.
Definition: LogConfig.h:98
static const char * logRealmToString(ELogRealm realm)
Converts a log realm type to a string.
Definition: LogConfig.cc:49
ELogLevel
Definition of the supported log levels.
Definition: LogConfig.h:26
@ c_Error
Error: for things that went wrong and have to be fixed.
Definition: LogConfig.h:30
@ c_Info
Info: for informational messages, e.g.
Definition: LogConfig.h:27
@ c_Debug
Debug: for code development.
Definition: LogConfig.h:26
@ c_Fatal
Fatal: for situations were the program execution can not be continued.
Definition: LogConfig.h:31
@ c_Warning
Warning: for potential problems that the user should pay attention to.
Definition: LogConfig.h:29
@ c_Result
Result: for informational summary messages, e.g.
Definition: LogConfig.h:28
@ c_Default
Default: use globally configured log level.
Definition: LogConfig.h:32
static const int c_DefaultDebugLevel
Default debug level.
Definition: LogConfig.h:53
unsigned int getLogInfo(ELogLevel logLevel) const
Returns the configured log information for the given level.
Definition: LogConfig.h:134
ELogLevel getAbortLevel() const
Returns the configured abort level.
Definition: LogConfig.h:119
void setAbortLevel(ELogLevel abortLevel)
Configure the abort level.
Definition: LogConfig.h:112
ELogRealm
Definition of the supported execution realms.
Definition: LogConfig.h:48
@ c_None
No specific realm.
Definition: LogConfig.h:48
@ c_Online
Online data taking.
Definition: LogConfig.h:49
@ c_Production
Data production jobs.
Definition: LogConfig.h:50
ELogInfo
Definition of the supported log message information.
Definition: LogConfig.h:36
@ c_Module
Module in which the message was emitted.
Definition: LogConfig.h:38
@ c_File
Source file in which the message was emitted.
Definition: LogConfig.h:41
@ c_Function
Function in which the message was emitted.
Definition: LogConfig.h:40
@ c_Line
Line in source file in which the message was emitted.
Definition: LogConfig.h:42
@ c_Level
Log level of the message.
Definition: LogConfig.h:36
@ c_Package
Package in which the message was emitted.
Definition: LogConfig.h:39
@ c_Message
Log message text.
Definition: LogConfig.h:37
@ c_NoVariables
If set don't output any variables that are part of the message.
Definition: LogConfig.h:44
@ c_Timestamp
Time at which the message was emitted.
Definition: LogConfig.h:43
void setLogLevel(ELogLevel logLevel)
Configure the log level.
Definition: LogConfig.cc:25
void setLogInfo(ELogLevel logLevel, unsigned int logInfo)
Configure the printed log information for the given level.
Definition: LogConfig.h:127
static const char * logLevelToString(ELogLevel logLevelType)
Converts a log level type to a string.
Definition: LogConfig.cc:42
Abstract base class for different kinds of events.