3

这是我第一次使用 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>
4

2 回答 2

3

我不知道 LOGBack 但是,根据文档,我很确定

(%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>

假设其他一切都很好......

于 2013-03-27T16:53:16.230 回答
3

在 logback 中,模式字符串中的括号用作分组标记。他们需要逃脱。

于 2013-03-27T18:18:29.953 回答