我在主程序中使用logback。我实现了logback.xml文件,如下所示:
<configuration>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:\mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss", UTC} [%thread] %-5level %logger{36} %L - %msg%n</Pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss", UTC} [%thread] %-5level %logger{36} %L - %msg%n</Pattern>
</encoder>
</appender>
<logger name="source.main.FileProcess" level="INFO" />
<logger name="source.main.FileReadWrite" level="INFO" />
<logger name="source.main.OperatorLoader" level="DEBUG" />
<logger name="source.exception.ValidationException" level="INFO" />
<logger name="source.validation.Validation" level="INFO" />
<root level="debug">
<appender-ref ref="ROLLING" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
我的应用程序运行正常。但是当我将其转换为jar文件时,文件appender无法正常工作,日志只显示在控制台中。我使用此语句创建一个jar文件:
jar -cvfm app.jar manifest.txt source/main/MyApp.class
manifest.txt文件的内容如下:
Manifest-Version: 1.0
Main-Class: source.main.FileProcess
Class-Path: slf4j-api-1.7.7.jar logback-core-1.1.3.jar logback-classic-1.1.3.jar OperatorInterface.jar
有谁知道问题出在哪里?
答案 0 :(得分:1)
在执行jar时尝试设置logback配置的路径:
java -Dlogback.configurationFile=PATH_TO_FILE -jar app.jar