【发布时间】:2017-01-24 19:34:32
【问题描述】:
这是我将日志写入文件的附加程序(logback.xml 的一部分):
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/ps_gate_server.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{dd-MM-yyyy} %d{HH:mm:ss.SSS} [%-19.19t] [%-5p] [%-1.40X{OperationName};%-1.10X{ClientID};%-1.20X{PayID}] %m%n </Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/ps_gate_server.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
如所见,我的编码器是ch.qos.logback.classic.encoder.PatternLayoutEncoder,一切正常。我需要将我的日志记录转换为 JSON 格式。为此,我将编码器更改为 net.logstash.logback.encoder.LogstashEncoder:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/ps_gate_server.log</file>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<Pattern>%d{dd-MM-yyyy} %d{HH:mm:ss.SSS} [%-19.19t] [%-5p] [%-1.40X{OperationName};%-1.10X{ClientID};%-1.20X{PayID}] %m%n </Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/ps_gate_server.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
然后,当程序启动时,程序不会创建文件 ps_gate_server.log。如果有人知道,请提示。所有必要的罐子都在那里。
【问题讨论】:
-
XML 无效。例如,
<Pattern>没有匹配的</Pattern>元素(注意斜线/)。另一个例子:<file>logs/ps_gate_server.log<file>应该是:<file>logs/ps_gate_server.log</file>。 -
@ChadNouis 您可以将其发布为我认为的答案。
-
不,这是我自己的错误。当我在这里写我的问题时,我犯了一个错误,但这不是真实代码中的错误,它们只是在这里,对不起
-
控制台有什么显示吗?确保您已启用控制台日志记录