如何配置Spring Boot logback RollingFileAppender并具有执行器日志文件?

时间:2016-10-19 20:35:10

标签: spring-boot logback spring-boot-actuator

据我所知,只有当logging.file=位于application.properties文件中时,/ logfile执行器才可用。

但是对于我的日志记录,我需要使用SizeAndTimeBasedRollingPolicy的RollingFileAppender文件appender。

是否可以在application.properties中配置RollingFileAppender?

如果我在logging-spring.xml中配置RollingFileAppender,则会出现错误:

java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - 'File' option has the same value "log/scratch6.log" as that given for appender [FILE] defined earlier.

是否可以通过RollingFileAppender获取日志文件并拥有/ logfile执行器?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。这是我发现的

logging.file - 实际创建一个文件。当你在logback-spring.xml中声明$ {LOG_FILE}时,它会检测到冲突。 appender和文件名具有相同的值。

我最终这样做了(附加.log以便它将appender与文件区分开来)

application.properties:  logging.file = /选择/ FFF /日志/ file_debug

的logback-spring.xml:

     <file>${LOG_FILE}.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} - %msg%n
        </Pattern>
    </encoder>

..

然而,除了/opt/fff/logs/file_debug.log之外,它还会创建另一个文件/ opt / fff / logs / file_debug

答案 1 :(得分:0)

Logback 负责创建日志文件,您只希望 spring 执行器 能够从日志文件中读取。

因此保持您的 logging-spring.xml(或 logback.xml)原样,并在 application.properties 中更改以下属性,来自:

logging.file=/var/log/tomcat/scratch6.log

致:

endpoints.logfile.external-file=/var/log/tomcat/scratch6.log

# or for newer versions for springboot:

management.endpoint.logfile.external-file=/var/log/tomcat/scratch6.log