Logback不会在Ubuntu上生成日志文件

时间:2011-08-29 06:36:50

标签: java logging ubuntu logback

我们已在应用程序中为我们的日志记录需求配置了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>

2 个答案:

答案 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