我正在使用syslog appender登录syslog,如下所示:
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL6</facility>
<suffixPattern>app: %logger{20} %msg</suffixPattern>
</appender>
但我有一个新的要求,我想将一些日志发送到“LOCAL5”设施而不是LOCAL6。我已经阅读了logback配置文档http://logback.qos.ch/manual/configuration.html,但我仍然不确定如何执行此操作。
答案 0 :(得分:0)
您可以使用两个syslog appender,一个用于LOCAL6,另一个用于LOCAL5
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL6</facility>
<suffixPattern>app: %logger{20} %msg</suffixPattern>
</appender>
<appender name="SYSLOG1" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL5</facility>
<suffixPattern>app: %logger{20} %msg</suffixPattern>
</appender>
优点是您可以使用过滤器,模式,记录器名称等自定义日志(某些日志).SyslogAppender扩展了UnsyncronizedAppender。
您无法使用单个appender的原因是类facilityStringToint(String facilityStr)
中的方法SyslogAppender.java
接受String,然后使用equals比较哪个标准工具。
实施例
if ("KERN".equalsIgnoreCase(facilityStr)) {
return SyslogConstants.LOG_KERN;
}