logging - SocketAppender 和 PatternLayout

标签 logging log4j appender

我有一个记录器将日志发送到日志服务器存储。这工作正常,但没有使用patternlayout。不管有没有,都不会改变任何事情。我相信记得在某处读过 socketappender 使用的是自己的模式而不是其他模式。

<appender name="LOGSTASH" class="org.apache.log4j.net.SocketAppender"> 
        <param name="Port" value="5000"/>
        <param name="RemoteHost" value="192.168.81.131"/> 
        <param name="ReconnectionDelay" value="5000"/>
        <param name="LocationInfo" value="true" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
      </layout>
</appender> 

但是关于这个documentation (和其他一些)他们使用这个。本文档的示例:

<appender name="A1" class="org.apache.log4j.net.SocketAppender">
    <param name="RemoteHost" value="localhost"/>
    <param name="Port" value="5000"/>
    <param name="LocationInfo" value="true"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/>
    </layout>
    </appender>

那么,是否无法将个人模式与 socketappender 一起使用,还是我的错?

如果不可能,是否有替代的附加程序用于使用自定义模式进行 TCP 日志记录?

最佳答案

似乎SocketAppender不使用布局。

SocketAppenders do not use a layout. They ship a serialized LoggingEvent object to the server side.

See documentation here

<小时/>

所以我使用SyslogAppender来替换。由于未使用的可能性(例如设施和优先级),它并不完美,但工作正常。

关于logging - SocketAppender 和 PatternLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230778/

相关文章:

Android ==> 登录而不进入 Debug模式?

java - 在 Logback 中对 Appender 进行分组?

java - 手动向 log4j 时间戳添加小时数?

java - log4j 1 到 log4j 2 属性文件

java - log4j 与 Mac OS Leopard 兼容吗

java - 从一个附加器过滤记录器,但不从另一个附加器过滤记录器

java - logback 在名称为当前日期的文件夹内创建日志文件

java - 如何根据系统属性设置 RollingAppender 自定义文件名

java - Antlr4 - 语法解析日志文件

logging - 将 logrotate 与 logback 一起使用