$search
00001 00008 /***************************************************************************** 00009 ** Includes 00010 *****************************************************************************/ 00011 00012 #include <iostream> 00013 #include <string> 00014 #include <ecl/threads/thread.hpp> 00015 #include <ecl/streams/log_stream.hpp> 00016 00017 /***************************************************************************** 00018 ** Using 00019 *****************************************************************************/ 00020 00021 using std::string; 00022 using ecl::New; 00023 using ecl::LogStream; 00024 using ecl::Thread; 00025 00026 /***************************************************************************** 00027 ** Namespaces 00028 *****************************************************************************/ 00029 00030 namespace ecl { 00031 namespace demos { 00032 00033 /***************************************************************************** 00034 ** Enums 00035 *****************************************************************************/ 00036 00037 enum LogModes { 00038 Warning, 00039 Error, 00040 Debug, 00041 }; 00042 00043 void enableModes( LogStream &log_stream ) { 00044 log_stream.enableHeader(); 00045 log_stream.enableTimeStamp(); 00046 log_stream.enableMode(Warning,"WARNING"); 00047 log_stream.enableMode(Error,"ERROR"); 00048 log_stream.enableMode(Debug,"DEBUG"); 00049 } 00050 00051 void f() { 00052 LogStream logstream("test.log",New); 00053 enableModes(logstream); 00054 LOG(logstream,Debug) << "Debug message from a threaded function.\n"; 00055 FLUSH(logstream); 00056 } 00057 00058 } // namespace demos 00059 } // namespace ecl 00060 00061 /***************************************************************************** 00062 ** Using 00063 *****************************************************************************/ 00064 00065 using namespace ecl::demos; 00066 00067 /***************************************************************************** 00068 ** Main 00069 *****************************************************************************/ 00070 00071 int main(int argc, char** argv) { 00072 00073 std::cout << std::endl; 00074 std::cout << "***********************************************************" << std::endl; 00075 std::cout << " LogStream" << std::endl; 00076 std::cout << "***********************************************************" << std::endl; 00077 std::cout << std::endl; 00078 00079 std::cout << "This program will log from main and a parallel thread" << std::endl; 00080 std::cout << "to a shared log file call 'test.log'." << std::endl; 00081 00082 LogStream logstream("test.log",New); 00083 enableModes(logstream); 00084 Thread thread(f); 00085 LOG(logstream,Debug) << "Debug message from main.\n"; 00086 FLUSH(logstream); 00087 thread.join(); 00088 00089 std::cout << std::endl; 00090 std::cout << "***********************************************************" << std::endl; 00091 std::cout << " Passed" << std::endl; 00092 std::cout << "***********************************************************" << std::endl; 00093 std::cout << std::endl; 00094 00095 return 0; 00096 }