source:
molecuilder/src/errorlogger.cpp@
32842d8
| Last change on this file since 32842d8 was e9f2e1, checked in by , 16 years ago | |
|---|---|
|
|
| File size: 1.9 KB | |
| Rev | Line | |
|---|---|---|
| [96d8dc] | 1 | /* |
| 2 | * errorLogger.cpp | |
| 3 | * | |
| 4 | * Created on: Oct 19, 2009 | |
| 5 | * Author: metzler | |
| 6 | */ | |
| 7 | ||
| 8 | #include <fstream> | |
| [543ce4] | 9 | #include "errorlogger.hpp" |
| [96d8dc] | 10 | #include "verbose.hpp" |
| [e9f2e1] | 11 | #include "Patterns/Singleton_impl.hpp" |
| [96d8dc] | 12 | |
| 13 | ofstream null("/dev/null"); | |
| [543ce4] | 14 | int errorLogger::verbosity = 2; |
| [96d8dc] | 15 | ostream* errorLogger::nix = &null; |
| 16 | ||
| 17 | /** | |
| 18 | * Constructor. Do not use this function. Use getInstance() instead. | |
| 19 | * | |
| 20 | * \return errorLogger instance | |
| 21 | */ | |
| 22 | errorLogger::errorLogger() | |
| 23 | { | |
| [543ce4] | 24 | verbosity = 2; |
| [96d8dc] | 25 | }; |
| 26 | ||
| 27 | /** | |
| 28 | * Destructor. Better use purgeInstance(). | |
| 29 | */ | |
| 30 | errorLogger::~errorLogger() { | |
| [543ce4] | 31 | verbosity = 2; |
| [96d8dc] | 32 | } |
| 33 | ||
| [e9f2e1] | 34 | CONSTRUCT_SINGLETON(errorLogger) |
| [96d8dc] | 35 | |
| 36 | /** | |
| 37 | * Sets the verbosity. | |
| 38 | * | |
| 39 | * \param verbosityLevel verbosity | |
| 40 | */ | |
| 41 | void errorLogger::setVerbosity(int verbosityLevel) { | |
| 42 | verbosity = verbosityLevel; | |
| 43 | } | |
| 44 | ||
| 45 | /** | |
| 46 | * Operator for the Binary(arg) call. | |
| 47 | * Constructs temporary a Verbose class object, wherein the Binary is stored. | |
| 48 | * Then << is called, which calls Binary's print which adds the tabs and logs | |
| 49 | * the stream. | |
| 50 | * \param &ost stream to extend | |
| 51 | * \param &m pointer to created Binary object | |
| 52 | * \return &ost | |
| 53 | */ | |
| 54 | ostream& operator<<(class errorLogger& l, const Verbose& v) | |
| 55 | { | |
| 56 | int verbosityLevel = l.verbosity; | |
| 57 | l.nix->clear(); | |
| [548cbf] | 58 | if (v.DoOutput(verbosityLevel)) { |
| 59 | switch(v.Verbosity) { | |
| 60 | case 0: | |
| [7d1ad9] | 61 | cerr << "CRITICAL: "; |
| [548cbf] | 62 | break; |
| 63 | case 1: | |
| [7d1ad9] | 64 | cerr << "ERROR: "; |
| [548cbf] | 65 | break; |
| 66 | case 2: | |
| [7d1ad9] | 67 | cerr << "WARNING: "; |
| [548cbf] | 68 | break; |
| 69 | default: | |
| 70 | break; | |
| 71 | } | |
| [7d1ad9] | 72 | v.print(cerr); |
| [96d8dc] | 73 | return cerr; |
| [548cbf] | 74 | } else |
| [96d8dc] | 75 | return *l.nix; |
| 76 | }; | |
| 77 | ostream& operator<<(class errorLogger* l, const Verbose& v) | |
| 78 | { | |
| 79 | int verbosityLevel = l->verbosity; | |
| 80 | l->nix->clear(); | |
| [548cbf] | 81 | if (v.DoOutput(verbosityLevel)) { |
| 82 | switch(v.Verbosity) { | |
| 83 | case 0: | |
| [7d1ad9] | 84 | cerr << "CRITICAL: "; |
| [548cbf] | 85 | break; |
| 86 | case 1: | |
| [7d1ad9] | 87 | cerr << "ERROR: "; |
| [548cbf] | 88 | break; |
| 89 | case 2: | |
| [7d1ad9] | 90 | cerr << "WARNING: "; |
| [548cbf] | 91 | break; |
| 92 | default: | |
| 93 | break; | |
| 94 | } | |
| [7d1ad9] | 95 | v.print(cerr); |
| [96d8dc] | 96 | return cerr; |
| [548cbf] | 97 | } else |
| [96d8dc] | 98 | return *l->nix; |
| 99 | }; | |
| 100 | ||
| 101 |
Note:
See TracBrowser
for help on using the repository browser.
