我想要日期不同的记录器文件,如
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
答案 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)
声明logback.xml文件spring application.properties或yml文件。如果我们将配置名称保留为logback.xml,则此步骤是可选的。
logging.file:logback.xml
只需在资源文件夹的根目录或类路径的根目录中创建标准的 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>