ANNA Suite  2020b
Multipurpose development suite for Telco applications
TraceLevelChecker.hpp
Go to the documentation of this file.
1 // ANNA - Anna is Not Nothingness Anymore //
2 // //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
4 // //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7 
8 
9 #ifndef anna_core_tracing_TraceLevelChecker_hpp
10 #define anna_core_tracing_TraceLevelChecker_hpp
11 
12 
13 
15 
16 // STL
17 #include <string>
18 
19 
20 
21 namespace anna {
22 
23 namespace tracing {
24 
25 
26 
31 
32 
33  anna::Logger::Level a_previousLevel; // backup level to be restored at destructor
34  std::string a_contextData;
35 
36 public:
37 
38 
77  TraceLevelChecker(const char * contextData = NULL) {
78  a_previousLevel = anna::Logger::getLevel(); // protection (si por error no se usara el load() nunca, el destructor podria alterar el nivel de traceo del proceso)
79  a_contextData = contextData ? contextData : "";
80 
81  if(contextData) load(contextData);
82  }
83 
84 
93 
94 
107  virtual bool changeLevelCondition(const std::string & contextData, anna::Logger::Level & targetLevel) const ;
108 
109 
125  bool load(const char * contextData = NULL) ;
126 
127 
135  bool restore(void) ;
136 };
137 
138 }
139 }
140 
141 #endif
Level
Definition: Logger.hpp:39
bool load(const char *contextData=NULL)
static Level getLevel()
Definition: Logger.hpp:143
TraceLevelChecker(const char *contextData=NULL)
Definition: TraceLevelChecker.hpp:77
~TraceLevelChecker()
Definition: TraceLevelChecker.hpp:92
Definition: app.hpp:12
virtual bool changeLevelCondition(const std::string &contextData, anna::Logger::Level &targetLevel) const
Definition: TraceLevelChecker.hpp:30