使用slf4j的日期记录文件

时间:2017-05-29 07:45:07

标签: logging spring-boot slf4j

我想要日期不同的记录器文件,如

2017-05-20.log
2017-05-21.log
2017-05-22.log
2017-05-23.log

在我的spring-boot项目中,使用logger而不是log4j。

我的application.properties文件设置:

spring.output.ansi.enabled=ALWAYS
logging.level.com.propatterns=DEBUG
logging.level.org.hibernate=ERROR
logging.level.org.springframework.web=ERROR
logging.file=logs/application.log

2 个答案:

答案 0 :(得分:0)

Slf4j就是API。您需要为此选择一个实现。

使用Spring Boot,我认为最简单的选择是使用Logback(这是Ceki的slf4j实现)。如果Logback可用,那么Spring Boot将使用它。

如果你将一个logback.xml放在你的类路径的根目录中,那么它将从那里被选中,并且将根据它来配置日志记录。

为了每天启动一个新的日志文件,你需要在logback.xml中使用这样的东西:

  <appender name="file"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.path}/log.log</file>
    <append>true</append>
    <encoder>
        <pattern>%date{ISO8601,Etc/UTC} %t %-5level %logger %msg%n
        </pattern>
    </encoder>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.path}/log_%d{yyyy-MM-dd}.log
        </fileNamePattern>
    </rollingPolicy>
</appender>

<root level="ALL">
    <appender-ref ref="file" />
</root>

答案 1 :(得分:0)

  1. 声明logback.xml文件spring application.properties或yml文件。如果我们将配置名称保留为logback.xml,则此步骤是可选的。

    logging.file:logback.xml

  2. 只需在资源文件夹的根目录或类路径的根目录中创建标准的 logback.xml 即可。这将覆盖Spring Boot日志记录模板。这里使用'RollingFileAppender'。查看示例here

    <property name="DEV_HOME" value="c:/logs" />
    
    <appender name="FILE-AUDIT"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/debug.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>
    
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
        </rollingPolicy>
    
    </appender>
    
    <logger name="com.example" level="debug"
        additivity="false">
        <appender-ref ref="FILE-AUDIT" />
    </logger>
    
    <root level="error">
        <appender-ref ref="FILE-AUDIT" />
    </root>