Luiza  v03-01
logscope.h
1 #ifndef logscope_h
2 #define logscope_h
3 
4 #include "streamlog/logstream.h"
5 
6 namespace streamlog{
7 
23  class logscope{
24 
25  public:
28  logscope(logstream& ls) : _ls(&ls) , _name("") , _level(-1) { }
29 
33 
34  if( _name.size() > 0 ) {
35  _ls->prefix()->_name=_name ;
36  //std::cerr << " ~logscope() reset name to " << _name << std::endl ;
37 
38  }
39  if( _level > -1 )
40  _ls->setLevel( _level ) ;
41  }
42 
44  void setName(const std::string name) {
45  _name = _ls->prefix()->_name ;
46  _ls->prefix()->_name = name ;
47  }
48 
49 
51  template <class T>
52  void setLevel(){
53  _level = _ls->_level ;
54  _ls->setLevel( T::level ) ;
55  }
56 
61  void setLevel(const std::string& level){
62  _level = _ls->setLevel( level ) ;
63  }
64 
65  protected:
66  logstream* _ls ;
67  std::string _name ;
68  int _level;
69  logscope() {}
70 
71  };
72 
73 }
74 #endif
~logscope()
Definition: logscope.h:32
logscope(logstream &ls)
Definition: logscope.h:28
void setLevel(const std::string &level)
Definition: logscope.h:61
Definition: logscope.h:23
Namespace of method for logging messages based on streamlog.
Definition: baselevels.h:20
prefix_base * prefix()
Definition: logstream.h:130
Definition: logstream.h:52
void setName(const std::string name)
Definition: logscope.h:44
void setLevel(unsigned level)
Definition: logstream.h:122
void setLevel()
Definition: logscope.h:52