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";
41 if (getenv(
"LOG_DISABLE") != NULL) {
47 Logger logger = Logger::getRoot();
48 logger.setLogLevel(logLevel);
52 BasicConfigurator config;
54 Logger logger = Logger::getRoot();
55 std::unique_ptr<Layout> layout_ptr(
new PatternLayout(
loggingPattern));
56 logger.getAllAppenders().at(0)->setLayout(std::move(layout_ptr));
60 void LoggingInit(
const std::string &filename,
long maxFileSize,
int maxBackupIndex,
61 bool useSyslog,
const std::string &syslogFacility,
62 const std::string &ident, LogLevel logLevel) {
63 Logger logger = Logger::getRoot();
64 logger.setLogLevel(logLevel);
67 helpers::Properties props;
68 std::string syslogident = boost::str(
69 boost::format(
"%1%[%2%]") % ident % getpid());
70 props.setProperty(LOG4CPLUS_TEXT(
"facility"),
71 boost::starts_with(syslogFacility,
"LOG_")
72 ? syslogFacility.substr(4)
74 props.setProperty(LOG4CPLUS_TEXT(
"ident"), syslogident);
75 SharedAppenderPtr syslogappender(
new SysLogAppender(props));
76 std::unique_ptr<Layout> syslog_layout_ptr(
new PatternLayout(
78 syslogappender->setLayout(std::move(syslog_layout_ptr));
79 logger.addAppender(syslogappender);
82 if (filename ==
"<stdout>" || filename.length() == 0) {
83 BasicConfigurator config;
86 SharedAppenderPtr fileappender(
new RollingFileAppender(filename,
87 maxFileSize, maxBackupIndex));
88 logger.addAppender(fileappender);
91 std::unique_ptr<Layout> layout_ptr(
new PatternLayout(
loggingPattern));
92 logger.getAllAppenders().at(0)->setLayout(std::move(layout_ptr));
99 PropertyConfigurator::doConfigure(propertyFile);
static const char * loggingPattern
void CheckEnvironmentAndUpdate()
void SetLoggingDisabled(bool flag)
void SetLoggingLevel(LogLevel logLevel)
void SetUseSysLog(bool use_syslog)