这是我第一次使用Logback - 通常使用log4j - 被依赖项强行插入。
我使用log4j.properties
的在线转换器 - > logback.xml
。
当我运行应用程序时,我得到的只是任何日志行的前18个字符,最后没有换行符。控制台和日志文件中的结果输出为:
16:32:00.537 (main16:32:00.537 (main16:32:00.537 (main16:32:00.537
(main16:32:00.537 (main16:32:00.537 (main16:32:00.537 (main16:32:00.537 (main
究竟是什么造成这种情况?
logback.xml是
<configuration>
<appender name="xyzzy" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>xyzzy.log</File>
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} (%t) %-5p [%c{36}] - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>xyzzy.log.%d</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} (%t) [%c{36}] %msg%n</pattern>
</encoder>
</appender>
<logger name="com.package" level="DEBUG"/>
<logger name="org.apache.http.client.protocol.ResponseProcessCookies" level="ERROR"/>
<root level="WARN">
<appender-ref ref="xyzzy"/>
<appender-ref ref="console"/>
</root>
</configuration>
答案 0 :(得分:3)
我不知道LOGBack,{,according to the documentation, 我很确定
(%t)
应该是
[%t]
这正是你的模式破裂的地方......
然后尝试:
<pattern>%d{HH:mm:ss.SSS} [%t] %-5p [%c{36}] - %msg%n</pattern>
[...]
<pattern>%d{HH:mm:ss.SSS} [%t] [%c{36}] %msg%n</pattern>
假设所有其余的都很好......
答案 1 :(得分:3)
在logback中,模式字符串中的括号用作grouping tokens。他们需要逃脱。