~ubuntu-branches/ubuntu/trusty/log4shib/trusty

« back to all changes in this revision

Viewing changes to tests/testmain.cpp

  • Committer: Package Import Robot
  • Author(s): Russ Allbery
  • Date: 2012-06-05 21:20:25 UTC
  • Revision ID: package-import@ubuntu.com-20120605212025-uyigtav7dqwvnf41
Tags: upstream-1.0.4
ImportĀ upstreamĀ versionĀ 1.0.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include "log4shib/Portability.hh"
 
3
#ifdef LOG4SHIB_HAVE_UNISTD_H
 
4
#include <unistd.h>
 
5
#endif
 
6
#include <iostream>
 
7
#include "log4shib/Category.hh"
 
8
#include "log4shib/Appender.hh"
 
9
#include "log4shib/FileAppender.hh"
 
10
#include "log4shib/OstreamAppender.hh"
 
11
#ifdef LOG4SHIB_HAVE_SYSLOG
 
12
#include "log4shib/SyslogAppender.hh"
 
13
#endif
 
14
#include "log4shib/Layout.hh"
 
15
#include "log4shib/BasicLayout.hh"
 
16
#include "log4shib/Priority.hh"
 
17
#include "log4shib/NDC.hh"
 
18
 
 
19
int main(int argc, char** argv) {
 
20
        log4shib::Appender* appender;
 
21
#ifdef LOG4SHIB_HAVE_SYSLOG
 
22
        log4shib::SyslogAppender* syslogAppender;
 
23
 
 
24
        syslogAppender = new log4shib::SyslogAppender("syslog", "log4shib");
 
25
#else
 
26
        log4shib::Appender* syslogAppender;
 
27
 
 
28
        syslogAppender = new log4shib::OstreamAppender("syslogdummy", &std::cout);
 
29
#endif
 
30
 
 
31
        if (argc < 2) {
 
32
                appender = new log4shib::OstreamAppender("default", &std::cout);
 
33
        } else {
 
34
                appender = new log4shib::FileAppender("default", argv[1]);
 
35
        }
 
36
 
 
37
        syslogAppender->setLayout(new log4shib::BasicLayout());
 
38
        appender->setLayout(new log4shib::BasicLayout());
 
39
 
 
40
        log4shib::Category& root = log4shib::Category::getRoot();
 
41
        root.addAppender(syslogAppender);
 
42
        root.setPriority(log4shib::Priority::ERROR);
 
43
 
 
44
        log4shib::Category& sub1 = log4shib::Category::getInstance(std::string("sub1"));
 
45
        sub1.addAppender(appender);
 
46
 
 
47
        log4shib::Category& sub2 = log4shib::Category::getInstance(std::string("sub1.sub2"));
 
48
 
 
49
        log4shib::NDC::push(std::string("ndc1"));
 
50
 
 
51
        std::cout << " root prio = " << root.getPriority() << std::endl;
 
52
        std::cout << " sub1 prio = " << sub1.getPriority() << std::endl;
 
53
        std::cout << " sub2 prio = " << sub2.getPriority() << std::endl;
 
54
 
 
55
        root.error("root error");
 
56
        root.warn("root warn");
 
57
        sub1.error("sub1 error");
 
58
        sub1.warn("sub1 warn");
 
59
        sub2.error("sub2 error");
 
60
        sub2.warn("sub2 warn");
 
61
 
 
62
        sub1.setPriority(log4shib::Priority::INFO);
 
63
        std::cout << " root prio = " << root.getPriority() << std::endl;
 
64
        std::cout << " sub1 prio = " << sub1.getPriority() << std::endl;
 
65
        std::cout << " sub2 prio = " << sub2.getPriority() << std::endl;
 
66
 
 
67
        std::cout << "priority info" << std::endl;
 
68
        root.error("root error");
 
69
        root.warn("root warn");
 
70
        sub1.error("sub1 error");
 
71
        sub1.warn("sub1 warn");
 
72
        sub2.error("sub2 error");
 
73
        sub2.warn("sub2 warn");
 
74
 
 
75
        sub2.warnStream() << "streamed warn";
 
76
 
 
77
        sub2 << log4shib::Priority::WARN << "warn2" << " warn3" <<
 
78
                log4shib::eol << " warn4";
 
79
 
 
80
        {
 
81
                for(int i = 0; i < 10000; i++) {
 
82
                        char ndc2[20];
 
83
                        sprintf(ndc2, "i=%d", i);
 
84
                        log4shib::NDC::push(ndc2);
 
85
                        sub1.info("%s%d", "i = ", i);
 
86
                        if ((i % 10) == 0) {
 
87
                                sub1.log(log4shib::Priority::NOTICE, "reopen log");
 
88
                                if (log4shib::Appender::reopenAll()) {
 
89
                                        sub1.info("log reopened");
 
90
                                } else {
 
91
                                        sub1.warn("could not reopen log");
 
92
                                }
 
93
                        }
 
94
#ifndef WIN32
 
95
                        sleep(1);
 
96
#endif
 
97
                        log4shib::NDC::pop();
 
98
                }
 
99
        }
 
100
 
 
101
        return 0;
 
102
}