我想让Log4cplus格式化syslog和额外文件中的条目,因此严重性将首先出现,如下所示:
[ERROR] 2016-12-19 15:00:53.182Z [16538] int main(int, char**) | This
is a ERROR message
使用我的配置文件进行的此类格式化以及任何其他更改仅反映在控制台输出中。
在系统日志中,格式不会更改,格式如下:
Dec 19 15:19:34 e97ed7deb530 myApp: ERROR [361] myApp.cpp - This is a ERROR message
在额外文件中,格式不会更改,格式如下:
2016-12-19 15:19:34+0000 [140675141003072] ERROR main <> - This is a ERROR message
这是我的配置文件:
log4cplus.appender.syslog=log4cplus::SysLogAppender
log4cplus.appender.syslog.layout=log4cplus::PatternLayout
log4cplus.appender.syslog.layout.ConversionPattern=%-5p [%T] %b %x - %m%n
log4cplus.appender.extra=log4cplus::RollingFileAppender
log4cplus.appender.extra.File=generated/obsidian-extra.log
log4cplus.appender.extra.MaxFileSize=200KB
log4cplus.appender.extra.MaxBackupIndex=5
log4cplus.appender.extra.layout=log4cplus::TTCCLayout
log4cplus.appender.extra.layout.ContextPrinting=enabled
log4cplus.appender.extra.layout.DateFormat=%F %T%z
log4cplus.appender.console=log4cplus::ConsoleAppender
log4cplus.appender.console.layout=log4cplus::PatternLayout
log4cplus.appender.console.layout.ConversionPattern=%-5p %d{%Y-%m-%d %H:%M:%S.%q}Z [%T] %M %x - %m%n
log4cplus.logger.main=ERROR, console
log4cplus.logger.main=DEBUG, default, extra, syslog
log4cplus.logger.LogTest=TRACE, extra, console, syslog
将配置文件更改为格式化,只能在控制台输出中看到。
如何使所有媒体上的所有日志保持一致:console,syslog和extra file?
答案 0 :(得分:0)
我认为它按设计工作,你唯一的误解是syslog输出:
Dec 19 15:19:34 e97ed7deb530 myApp: ERROR [361] myApp.cpp - This is a ERROR message
我相信整个Dec 19 15:19:34 e97ed7deb530 myApp:
是syslog本身添加的内容。其余的是根据您指定的布局。 ERROR [361] myApp.cpp - This is a ERROR message
匹配%-5p [%T] %b %x - %m%n
。
对于滚动文件,您指定了TTCCLayout
,这是特定的布局。你要求具体的时间戳,你得到它。其余的是线程ID,日志级别等。