log4cpp
1.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
include
log4cpp
Appender.hh
Go to the documentation of this file.
1
/*
2
* Appender.hh
3
*
4
* Copyright 2000, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
5
* Copyright 2000, Bastiaan Bakker. All rights reserved.
6
*
7
* See the COPYING file for the terms of usage and distribution.
8
*/
9
10
#ifndef _LOG4CPP_APPENDER_HH
11
#define _LOG4CPP_APPENDER_HH
12
13
#include <
log4cpp/Portability.hh
>
14
#include <string>
15
#include <map>
16
#include <set>
17
#include <stdarg.h>
18
#include <sys/types.h>
19
#include <sys/stat.h>
20
#include <fcntl.h>
21
#include <
log4cpp/Priority.hh
>
22
#include <
log4cpp/Layout.hh
>
23
#include <
log4cpp/LoggingEvent.hh
>
24
#include <
log4cpp/threading/Threading.hh
>
25
26
namespace
log4cpp {
27
class
LOG4CPP_EXPORT
Filter
;
28
33
class
LOG4CPP_EXPORT
Appender
{
34
public
:
35
42
static
Appender
* getAppender(
const
std::string& name);
43
48
static
bool
reopenAll();
49
54
static
void
closeAll();
55
56
protected
:
62
Appender
(
const
std::string& name);
63
64
public
:
68
virtual
~
Appender
();
69
74
virtual
void
doAppend(
const
LoggingEvent
& event) = 0;
75
81
virtual
bool
reopen() = 0;
82
87
virtual
void
close() = 0;
88
94
virtual
bool
requiresLayout()
const
= 0;
95
100
virtual
void
setLayout(
Layout
* layout) = 0;
101
106
inline
const
std::string&
getName
()
const
{
return
_name; };
107
114
virtual
void
setThreshold(
Priority::Value
priority) = 0;
115
120
virtual
Priority::Value
getThreshold() = 0;
121
125
virtual
void
setFilter(
Filter
* filter) = 0;
126
131
virtual
Filter
* getFilter() = 0;
132
133
private
:
134
typedef
std::map<std::string, Appender*> AppenderMap;
135
136
static
AppenderMap* _allAppenders;
137
static
threading::Mutex
_appenderMapMutex;
138
139
static
AppenderMap& _getAllAppenders();
140
static
void
_deleteAllAppenders();
141
static
void
_addAppender(
Appender
* appender);
142
static
void
_removeAppender(
Appender
* appender);
143
144
const
std::string _name;
145
};
146
147
typedef
std::set<Appender *>
AppenderSet
;
148
}
149
150
#endif // _LOG4CPP_APPENDER_HH
Generated by
1.8.3.1