logback-slf4j会将日志消息写入文件,而不是作为jar

x7yiwoj4  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(220)

我使用slf4j和logback来记录消息。它工作正常,并写入配置文件。但是当我构建一个可执行jar并尝试以java-jar可执行文件的形式从提示符运行时。它既不写入配置文件,也在控制台上显示大量调试消息。
这是my logback.xml:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>INFO</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<!--  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
          <pattern>%date{ISO8601} %-5level %logger{36} %X{sourceThread} - %msg%n</pattern>
      </encoder>
  </appender>-->

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/LogWriter/log-test.log </file>

    <append>true</append>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>/var/log/LogWriter/log-test.log.%i.log.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>10</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%date{ISO8601} %-5level %logger{36} %X{sourceThread} - %msg%n</pattern>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="FILE" />
    <appender-ref ref="STDOUT" />

</root>

zpjtge22

zpjtge221#

原因是您的主类没有找到logback.xml,因此logback使用默认的appender—在本例中是控制台。您需要确保打包jar时,logback.xml位于正确的位置。

相关问题