在我的应用程序的 logback.xml 中,我有一个 AsyncAppender 定义如下。
<appender name="socketAppender" class="ch.qos.logback.classic.net.SocketAppender">
<param name="RemoteHost" value="127.0.0.1" />
<param name="Port" value="15000" />
<param name="ReconnectionDelay" value="10" />
<param name="Threshold" value="DEBUG" />
</appender>
<appender name="appLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/myApp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/myApp.%d{yyyyMMdd.HH}00.log</fileNamePattern>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>[%d{yyyy/MM/dd HH:mm:ss.SSS}][%p][%c{0}] %m%n]</pattern>
</encoder>
</appender>
<appender name="AsyncLog" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="appLog" />
<appender-ref ref="socketAppender" />
</appender>
当我在 Windows 10 上的 Tomcat 中部署战争时。
- 监听 15000 端口的日志服务器没有收到日志。
- 所以我将 socketAppender 向上移动到第一个位置,如下所示。
<appender name="AsyncLog" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="socketAppender" />
<appender-ref ref="appLog" />
</appender>
随着此更改日志服务器开始接收日志,但日志文件停止写入/附加。3)我还尝试在 appender 上设置 queueSize 和 discardingThreshold 属性,但无济于事。
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
任何logback专家可以告诉我我在这里做错了什么吗?AsyncAppender 是否还有其他属性可以帮助解决此问题?