我有一个记录器将日志发送到日志服务器存储。这工作正常,但没有使用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.
所以我使用SyslogAppender来替换。由于未使用的可能性(例如设施和优先级),它并不完美,但工作正常。
关于logging - SocketAppender 和 PatternLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230778/