spring boot 日志管理 默认使用 logback。
快速使用
一、创建一个 logback-spring.xml 配置文件,和 application.yml 文件同级目录,spring会在启动时自动识别出来。
logback-spring.xml //会被spring 识别 (推荐)
好处:可以通过 springProfile 指定某地配置 只在特定环境生效
logback.xml //直接被日志框架识别,(不推荐)
**二、 复制下面的配置内容到 logback-spring.xml 配置文件 中 **
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<contextName>Logback For demo Mobile</contextName>
<!-- 设置log日志存放地址 -->
<!--(改) 单环境设置 -->
<!--<property name="LOG_HOME" value="/log" />-->
<!-- 多环境设置 -->
<springProfile name="dev">
<!-- 这个是日志存放路径 推荐使用相对路径 /代表当前的更目录 比如你在 F盘启动 jar 那么就会在F 盘创建 日志目录-->
<property name="LOG_HOME" value="/logging/devzzzll" />
</springProfile>
<springProfile name="prod">
<property name="LOG_HOME" value="/logging/prodzzzll" />
</springProfile>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder默认配置为PartternLayoutEncoder -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} -%msg%n</pattern>
</encoder>
<target>System.out</target>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 ,每天保存(侧翻)一次 -->
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>180</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{25} -%msg%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>20MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- (改)过滤器,可以指定哪些包,哪个记录到等级, -->
<!-- 运用的场景比如,你只需要com.demo.controller包下的error日志输出。定义好name="com.demo.controller" level="ERROR" 就行了 -->
<logger name="com" level="ERROR">
<appender-ref ref="ROLLING_FILE" />
</logger>
<!-- 全局,控制台遇到INFO及以上级别就进行输出 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
三、在application.yml 文件中配置 开发环境
spring:
profiles:
active: dev
logback 时 slf4j 的具体实现,我们在使用时,调用 slf4j 的日志接口方法就行。
spring boot 中使用 logback
1、将系统中其他日志框架先排除出去;(spring boot 已经帮我们做了)
2、用中间包来替换原有日志框架;(spring boot 已经帮我们做了)
或者是 jul-to-slf4j 都将底层的日志框架统一成 slf4j 抽象API
3、我们导入 slf4j 其他的实现;(spring boot 已经帮我们做了)
spring boot 在底层偷梁换柱将各个相关日志包,统一转换成 slf4j.api