Emeric Vigier | 2f62582 | 2012-08-06 11:09:52 -0400 | [diff] [blame] | 1 | /* |
| 2 | * ===================================================================================== |
| 3 | * |
| 4 | * Filename: test_alog.cpp |
| 5 | * |
| 6 | * Description: file to test alog and AppLog |
| 7 | * |
| 8 | * Version: 1.0 |
| 9 | * Created: 17/03/2009 14:49:21 |
| 10 | * Compiler: g++ |
| 11 | * |
| 12 | * Author: Angelo Naselli (an), anaselli@linux.it (C) 2009 |
| 13 | * Copyright: See COPYING file that comes with this distribution |
| 14 | * |
| 15 | * ===================================================================================== |
| 16 | */ |
| 17 | |
| 18 | #include <cc++/thread.h> |
| 19 | #include <cc++/applog.h> |
| 20 | |
| 21 | #ifdef CCXX_NAMESPACES |
| 22 | using namespace ost; |
| 23 | #endif |
| 24 | |
| 25 | class ThreadTest: public Thread |
| 26 | { |
| 27 | static AppLog::Ident mod_name; |
| 28 | void final ( void ); |
| 29 | void initial ( void ); |
| 30 | |
| 31 | int _id; |
| 32 | public: |
| 33 | ThreadTest ( int id ); |
| 34 | void run(); |
| 35 | }; |
| 36 | |
| 37 | AppLog::Ident ThreadTest::mod_name ( "ThreadTest" ); |
| 38 | |
| 39 | ThreadTest::ThreadTest ( int id ) : Thread(), _id ( id ) |
| 40 | { |
| 41 | } |
| 42 | |
| 43 | void ThreadTest::final() |
| 44 | { |
| 45 | alog << mod_name << info << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 46 | alog.unsubscribe(); |
| 47 | } |
| 48 | |
| 49 | void ThreadTest::initial() |
| 50 | { |
| 51 | //Init applog data |
| 52 | alog.subscribe(); |
| 53 | alog.level ( Slog::levelInfo ); |
| 54 | alog << mod_name << info << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 55 | } |
| 56 | |
| 57 | void ThreadTest::run() |
| 58 | { |
| 59 | alog << mod_name << debug << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 60 | alog << mod_name << info << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 61 | alog << mod_name << warn << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 62 | alog << mod_name << alert << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 63 | Thread::sleep ( 10 ); |
| 64 | alog << mod_name << error << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 65 | alog << mod_name << notice << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 66 | alog << mod_name << critical << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 67 | alog << mod_name << emerg << __PRETTY_FUNCTION__ << " id " << _id << endl; |
| 68 | |
| 69 | Thread::sleep ( 100 ); |
| 70 | } |
| 71 | |
| 72 | |
| 73 | int main() |
| 74 | { |
| 75 | AppLog::Ident mod_name ( "main" ); |
| 76 | // uncomment third parameter to test log over pipe |
| 77 | alog.logFileName ( "./test_alog.log", false /*, true */); |
| 78 | alog.subscribe(); |
| 79 | alog.level ( Slog::levelDebug ); |
| 80 | alog.slogEnable ( false ); // default false |
| 81 | alog.clogEnable ( true ); |
| 82 | alog << mod_name << info << "testAlog V. 1.0.0" << std::endl; |
| 83 | alog.clogEnable ( false ); |
| 84 | |
| 85 | // change level for module ThreadTest to info |
| 86 | alog.identLevel ( "ThreadTest", AppLog::levelTranslate ( "warn" ) ); |
| 87 | |
| 88 | alog << mod_name << debug << __PRETTY_FUNCTION__ << " Starting t1 warn level" << endl; |
| 89 | ThreadTest t1 ( 1 ); |
| 90 | t1.start(); |
| 91 | t1.join(); |
| 92 | alog << mod_name << debug << __PRETTY_FUNCTION__ << " t1 finished" << endl; |
| 93 | |
| 94 | alog << mod_name << debug << __PRETTY_FUNCTION__ << " Starting t2 and t3 enabling debug level" << endl; |
| 95 | alog.identLevel ( "ThreadTest", AppLog::levelTranslate ( "debug" ) ); |
| 96 | ThreadTest t2 ( 2 ), t3 ( 3 ); |
| 97 | t2.start(); |
| 98 | t3.start(); |
| 99 | alog << mod_name << info << __PRETTY_FUNCTION__ << " Waiting 1000 ms" << endl; |
| 100 | |
| 101 | Thread::sleep ( 1000 ); |
| 102 | |
| 103 | alog << mod_name << warn << __PRETTY_FUNCTION__ << " end test" << endl; |
| 104 | |
| 105 | alog << mod_name << info << "open a new log file, called testAlog.log" << endl; |
| 106 | AppLog newLog ( "./testAlog.log" ); |
| 107 | newLog.subscribe(); |
| 108 | newLog << mod_name << info << "This is a new log" << endl; |
| 109 | |
| 110 | // HEXdump testing |
| 111 | unsigned char buff[10] ; |
| 112 | for (int i=0; i<10; i++) buff[i] = i+48; |
| 113 | |
| 114 | newLog << info << HEXdump(buff, 10) << std::endl; |
| 115 | |
| 116 | newLog << info << __PRETTY_FUNCTION__ << " end test" << endl; |
| 117 | |
| 118 | return 0; |
| 119 | } |
| 120 | |