在一个项目中,我在类路径上有以下内容:
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不会写入日志文件?
答案 0 :(得分:8)
您是否尝试过在logback.xml中将文件appender-ref添加到root中,如下所示:
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>