9 #include <log4cplus/helpers/pointer.h>
10 #include <log4cplus/configurator.h>
11 #include <log4cplus/fileappender.h>
12 #include <log4cplus/syslogappender.h>
14 #include <boost/format.hpp>
15 #include <boost/algorithm/string/predicate.hpp>
17 using namespace log4cplus;
22 " %h [Thread %t, Pid %i]: %m%n";
39 const std::string &syslogFacility,
40 const std::string &ident,
41 log4cplus::LogLevel logLevel) {
72 if (getenv(
"LOG_DISABLE") != NULL) {
78 Logger logger = Logger::getRoot();
79 logger.setLogLevel(logLevel);
83 BasicConfigurator config;
85 Logger logger = Logger::getRoot();
86 std::unique_ptr<Layout> layout_ptr(
new PatternLayout(
loggingPattern));
87 logger.getAllAppenders().at(0)->setLayout(std::move(layout_ptr));
91 void LoggingInit(
const std::string &filename,
long maxFileSize,
int maxBackupIndex,
92 bool useSyslog,
const std::string &syslogFacility,
93 const std::string &ident, LogLevel logLevel) {
94 Logger logger = Logger::getRoot();
95 logger.setLogLevel(logLevel);
98 helpers::Properties props;
99 std::string syslogident = boost::str(
100 boost::format(
"%1%[%2%]") % ident % getpid());
101 props.setProperty(LOG4CPLUS_TEXT(
"facility"),
102 boost::starts_with(syslogFacility,
"LOG_")
103 ? syslogFacility.substr(4)
105 props.setProperty(LOG4CPLUS_TEXT(
"ident"), syslogident);
106 SharedAppenderPtr syslogappender(
new SysLogAppender(props));
107 std::unique_ptr<Layout> syslog_layout_ptr(
new PatternLayout(
109 syslogappender->setLayout(std::move(syslog_layout_ptr));
110 logger.addAppender(syslogappender);
113 if (filename ==
"<stdout>" || filename.length() == 0) {
114 BasicConfigurator config;
117 SharedAppenderPtr fileappender(
new RollingFileAppender(filename,
118 maxFileSize, maxBackupIndex));
119 logger.addAppender(fileappender);
122 std::unique_ptr<Layout> layout_ptr(
new PatternLayout(
loggingPattern));
123 logger.getAllAppenders().at(0)->setLayout(std::move(layout_ptr));
130 PropertyConfigurator::doConfigure(propertyFile);
void Init()
Performs basic initialization of the logging system ( log4cplus).
Logging()
Prepares log4cplus library for execution. Uses RAII to free resources after the completion of the pro...
~Logging()
Destroys the object and shutdowns the logging system.
static const char * loggingPattern
void CheckEnvironmentAndUpdate()
void SetLoggingLevel(LogLevel logLevel)
void SetUseSysLog(bool use_syslog)
void SetLoggingDisabled(bool flag)