blob: f1e4e2b3d1aad640658693a8833165e4e294c571 [file] [log] [blame]
Emeric Vigier2f625822012-08-06 11:09:52 -04001/*
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
22using namespace ost;
23#endif
24
25class 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
37AppLog::Ident ThreadTest::mod_name ( "ThreadTest" );
38
39ThreadTest::ThreadTest ( int id ) : Thread(), _id ( id )
40{
41}
42
43void ThreadTest::final()
44{
45 alog << mod_name << info << __PRETTY_FUNCTION__ << " id " << _id << endl;
46 alog.unsubscribe();
47}
48
49void 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
57void 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
73int 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