Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Logback没有在Ubuntu上生成日志文件_Java_Logging_Ubuntu_Logback - Fatal编程技术网

Java Logback没有在Ubuntu上生成日志文件

Java Logback没有在Ubuntu上生成日志文件,java,logging,ubuntu,logback,Java,Logging,Ubuntu,Logback,我们已经为应用程序中的日志记录需求配置了logback。当我们在Windows机器上运行应用程序时,它会按预期工作,并生成带有正确日志的日志文件。然而,当我们在Ubuntu机器上部署相同的可运行jar文件时,它不会生成日志文件。以下是logback.xml中的代码 <configuration> <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <!--

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

单号
未知的
${uniqueNumber}.log
真的
${uniqueNumber}u%i.log
1.
10000
5MB
%d[%thread]%级别%mdc%logger{35}-%msg%n

如果配置出现任何问题。如果您没有看到这些,那么可能会生成文件,但您不知道在哪里

您可以使用
显式启用logback打印,这将为您提供更多的工作


如果您无法找到文件,请考虑使用<代码> LSOF 来定位应用程序的打开文件的完整路径。

我也遇到了类似的问题,即使使用简单的回溯配置。

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


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

Hi@Thorbjorn,谢谢您的回答。我搜索了与运行jar相同文件夹中的文件,还搜索了根文件夹、var/logs文件夹和其他一些文件夹中的日志文件,但没有找到任何调试消息。是否启用了logback调试诊断?是的,我启用了调试诊断,并且可以在Windows上查看日志,如logback-test.xml未找到,找到logback.xml..etc..Try
lsof
。可能需要root权限。hi@Thorbjorn,我将logback.xml保存在jar文件中,这导致了问题。此外,该文件夹未设置写入权限。因此,未生成日志文件。打印调试消息对我帮助很大。谢谢。你好,麦洛,谢谢你分享你的经验。我搜索了系统中几乎所有的文件,但找不到。