blob: 8e58326c1eddbbc7ee750ee966e20972b57bf26b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include "logger.h"
#include "options.h"
/// Logger that writes to syslog
class SyslogLogDriver : public LogDriverBase {
public:
SyslogLogDriver()
{
openlog(ident.c_str(), 0, LOG_USER);
}
~SyslogLogDriver()
{
closelog();
}
void message(int priority, const char * msg) const
{
if (priority <= level) {
syslog(priority, "%s", msg);
}
}
INITOPTIONS;
static int level;
private:
static std::string ident;
};
DECLARE_OPTIONS(SyslogLogDriver, "Syslog options")
("common.syslog.level", Options::value(&level, -1),
"Log to syslog with level <arg> (default OFF)")("s")
("common.syslog.ident", Options::value(&ident, "project2"),
"Log to syslog with ident <arg> (default 'project2')")
END_OPTIONS(SyslogLogDriver);
int SyslogLogDriver::level;
std::string SyslogLogDriver::ident;
DECLARE_LOGGER_LOADER("syslog", SyslogLogDriver);
|