00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <iostream>
00021
00022 #include <archon/util/thread.H>
00023
00024 #include <archon/util/logger.H>
00025
00026 using namespace std;
00027
00028 namespace Archon
00029 {
00030 namespace Utilities
00031 {
00032 struct StandardLogger: public Logger
00033 {
00034 virtual ~StandardLogger() {}
00035
00036 Semaphore s;
00037 void log(string message) throw()
00038 {
00039 s.down();
00040 try
00041 {
00042 cerr << message << "\n";
00043 }
00044 catch(...) {}
00045 s.up();
00046 }
00047 };
00048
00049 Logger *Logger::get()
00050 {
00051 static StandardLogger standardLogger;
00052 return &standardLogger;
00053 }
00054 }
00055 }