log_streams.cpp
Go to the documentation of this file.
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 }


ecl_streams
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:54