Logback FileAppender - 日志文件是空的吗?

时间:2012-02-28 09:43:31

标签: logging logback

在一个项目中,我在类路径上有以下内容:

Bundle-ClassPath: .,
 lib/logback-classic.jar,
 lib/logback-core.jar,
 lib/slf4j-api.jar

以及build.properties中的以下内容:

bin.includes = META-INF/,\
               .,\
               plugin.xml,\
               lib/logback-classic.jar,\
               lib/logback-core.jar,\
               lib/slf4j-api.jar,\
               logback.xml

在根目录中,我还有一个包含以下内容的logback.xml文件:

<!--   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> -->
<!--     <layout class="ch.qos.logback.classic.PatternLayout"> -->
<!--       <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n -->
<!--       </Pattern> -->
<!--     </layout> -->
<!--   </appender> -->
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <File>logs\\logfile.log</File>
    <Append>true</Append>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n
      </Pattern>
    </layout>
  </appender>
</configuration>

在启动时执行的类中,我有:

  private static final Logger logger = LoggerFactory.getLogger(Application.class.getName());
  public Object start(IApplicationContext context) {
    logger.debug("debug string");
    logger.warn("warn string");
    logger.error("error string");

当我构建并运行我的应用程序时,文件logs \ logfile.log在我的应用程序的根目录中创建,但它是空的。如果我使用ConsoleAppender并启用控制台,它可以正常工作。

为什么在使用FileAppender时,logback不会写入日志文件?

1 个答案:

答案 0 :(得分:8)

您是否尝试过在logback.xml中将文件appender-ref添加到root中,如下所示:

<root level="debug">
   <appender-ref ref="STDOUT" />
   <appender-ref ref="FILE" />
</root>
相关问题