【问题标题】:Logback is not generating log files on UbuntuLogback 不在 Ubuntu 上生成日志文件
【发布时间】:2011-08-29 06:36:50
【问题描述】:

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

【问题讨论】:

    标签: java logging ubuntu logback


    【解决方案1】:

    如果配置 logback prints out a lot of debug messages to System.out 出现任何问题。如果您没有看到这些,那么可能是文件已生成,但您只是不知道在哪里。

    您可以使用 &lt;configuration debug="true"&gt; 显式启用 logback 打印,这应该会给您更多工作。

    如果您只是找不到文件,请考虑使用lsof 来定位应用程序打开文件的完整路径。

    【讨论】:

    • 嗨@Thorbjorn,感谢您的回答。我搜索了与运行 jar 相同的文件夹中的文件,还搜索了根文件夹、var/logs 文件夹和其他一些文件夹中的日志文件,但没有得到任何调试消息。
    • 您是否启用了 logback 调试诊断?
    • 是的,我启用了调试诊断,并且可以在 Windows 上看到日志,例如 logback-test.xml not found, found logback.xml..etc..
    • 试试lsof。可能需要 root 权限。
    • 嗨@Thorbjorn,我将logback.xml 保存在jar 文件本身中,这导致了问题。除此之外,没有为文件夹设置写权限。因此,未生成日志文件。打印出调试消息对我帮助很大。谢谢你。
    【解决方案2】:

    即使使用更简单的 logback 配置,我也遇到了与您类似的问题。

    在我的 logback.xml 文件中,我使用绝对路径而不是相对路径作为 appender,但我的配置仅适用于 Linux,并且我们部署 Java 应用程序的机器都共享相同的配置/分区方案。

    文件,至少这是发生在我身上的事情,应该是你的应用程序目录的一个目录。假设您正在从 PATH/my.jar 执行 JAR,日志应该在 ../PATH

    【讨论】:

    • 您好,Milo,感谢您分享您的经验。我几乎在系统上到处搜索文件,但找不到。
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多