1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#ifndef Fireworks_Core_fwLog_h
#define Fireworks_Core_fwLog_h
// -*- C++ -*-
//
// Package: Core
// Class : fwLog
//
/**\class fwLog fwLog.h Fireworks/Core/interface/fwLog.h
Description: Simple logging utility
Usage:
To send a message to the logger
fwLog(kDebug) << "This is my message"<<std::endl;
To change the message levels which will be recorded
fwlog::setPresentLevel(kDebug);
To change where the messages go, just pass the address of an instance of std::ostream
fwlog::setLogger(&std::cerr);
*/
//
// Original Author: Chris Jones
// Created: Tue Dec 8 23:10:04 CST 2009
//
// system include files
#include <iostream>
// user include files
// forward declarations
namespace fwlog {
enum LogLevel { kDebug, kInfo, kWarning, kError };
const char* levelName(LogLevel);
std::ostream& logger();
void setLogger(std::ostream*);
LogLevel presentLogLevel();
void setPresentLogLevel(LogLevel);
} // namespace fwlog
#define fwLog(_level_) \
(fwlog::presentLogLevel() > _level_) ? fwlog::logger() : fwlog::logger() << fwlog::levelName(_level_) << ": "
#endif
|