我们已在应用程序中为我们的日志记录需求配置了logback。当我们在Windows机器上运行我们的应用程序时,它按预期工作并生成带有适当日志的日志文件。但是,当我们在Ubuntu机器上部署相同的可运行jar文件时,它不会生成日志文件。以下是logback.xml中的代码
<configuration>
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<!-- in the absence of the class attribute, it is assumed that the
desired discriminator type is
ch.qos.logback.classic.sift.MDCBasedDiscriminator -->
<discriminator>
<key>uniqueNumber</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${uniqueNumber}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${uniqueNumber}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>${uniqueNumber}_%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10000</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern>
</layout>
</appender>
</sift>
</appender>
<root level="DEBUG">
<appender-ref ref="SIFT" />
</root>
</configuration>
答案 0 :(得分:5)
如果配置logback prints out a lot of debug messages to System.out出现任何问题。如果你没有看到那些,那么也许文件是生成的,但你只是不知道在哪里。
您可以使用<configuration debug="true">
明确启用回溯打印,这样可以为您提供更多工作。
如果您找不到文件,请考虑使用lsof
找到应用程序打开文件的完整路径。
答案 1 :(得分:0)
即使使用更简单的logback配置,我也遇到了类似的问题。
在我的logback.xml
文件中,我为appender使用了绝对路径而不是相对路径,但我的配置仅限Linux,而我们部署Java应用程序的机器都共享相同的配置/分区方案。
这些文件,至少就是我发生的事情,应该是应用程序目录的一个目录。假设您正在从PATH/my.jar
执行JAR,日志应该在../PATH
。