使用 slf4j 的日期日志文件
Datewise logging file using slf4j
我想要日期不同的记录器文件,例如
2017-05-20.log
2017-05-21.log
2017-05-22.log
2017-05-23.log
在我的 spring-boot 项目中使用了 slf4j 而不是 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
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>
声明logback.xml文件springapplication.properties或yml文件。如果我们将配置名称保留为 logback.xml.
,则此步骤是可选的
logging.file: logback.xml
只需在资源文件夹的根目录或类路径的根目录中创建一个标准的logback.xml。这将覆盖 Spring 引导日志记录模板。这里使用了'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>
我想要日期不同的记录器文件,例如
2017-05-20.log
2017-05-21.log
2017-05-22.log
2017-05-23.log
在我的 spring-boot 项目中使用了 slf4j 而不是 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
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>
声明logback.xml文件springapplication.properties或yml文件。如果我们将配置名称保留为 logback.xml.
,则此步骤是可选的logging.file: logback.xml
只需在资源文件夹的根目录或类路径的根目录中创建一个标准的logback.xml。这将覆盖 Spring 引导日志记录模板。这里使用了'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>