LogBack 默认集成在 Spring Boot 中 , 是基于 Slf4j 的日志框架 。默认情况下 Spring Boot 是以 INFO 级别输出到控制台 。
它的日志级别是:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF配置LogBack 可以直接在 Application.properties 或 application.yml 中配置 , 但仅支持一些简单的配置 , 复杂的文件输出还是需要配置在 xml 配置文件中 。配置文件可命名为 logback.xml , LogBack 自动会在 classpath 的根目录下搜索配置文件 , 不过 Spring Boot 建议命名为 logback-spring.xml , 这样会自动引入 Spring Boot 一些扩展功能 。
如果需要引入自定义名称的配置文件 , 需要在 Spring Boot 的配置文件中指定 , 如:
logging:config: classpath:logback-spring.xml
同时 Spring Boot 提供了一个默认的 base.xml 配置 , 可以按照如下方式引入:<?xml version="1.0" encoding="UTF-8"?><configuration><include resource="org/springframework/boot/logging/logback/base.xml"/></configuration>
base.xml 提供了一些基本的默认配置以及在控制台输出时的关键字配色 , 具体文件内容可以看这里 , 可以查看到一些常用的配置写法 。详细配置变量可以使用 <property> 来定义变量:
<property name="log.path" value=https://www.isolves.com/it/cxkf/kj/2022-07-28/"/var/logs/application" />
同时可以引入 Spring 的环境变量:<property resource="application.yml" /><property resource="application.properties" />
推荐使用 <springProperty> , 相比 <property> 提供了 scope 和 defaultValue:<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"defaultValue=https://www.isolves.com/it/cxkf/kj/2022-07-28/"localhost"/>
所有的变量都可以通过 ${} 来调用 。输出到控制台
<?xml version="1.0" encoding="UTF-8"?><configuration><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%.-1level|%-40.40logger{0}|%msg%n</pattern></encoder></appender><logger name="com.mycompany.myapp" level="debug" /><logger name="org.springframework" level="info" /><logger name="org.springframework.beans" level="debug" /><root level="warn"><appender-ref ref="console" /></root></configuration>
输出到文件<property name="LOG_FILE" value=https://www.isolves.com/it/cxkf/kj/2022-07-28/"LogFile" />${LOG_FILE}.log ${LOG_FILE}.%d{yyyy-MM-dd}.gz 30 3GB %-4relative [%thread] %-5level %logger{35} - %msg%n
多环境配置LogBack 同样支持多环境配置 , 如 dev 、 test 、 prod<springProfile name="dev"><logger name="com.mycompany.myapp" level="debug"/></springProfile>
启动的时候 JAVA -jar xxx.jar --spring.profiles.active=dev 即可使配置生效 。如果要使用 Spring 扩展的 profile 支持 , 配置文件名必须命名为 LogBack_Spring.xml , 此时当 application.properties 中指定为 spring.profiles.active=dev 时 , 上述配置才会生效 。
备注【Spring boot的logback配置】如需手动配置logback依赖 , 则pom.xml增加如下:
https://mvnrepository.com/artifact/ch.qos.logback/logback-classic【可选择需要的版本】
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency>
我的parttern配置如下:<!--格式化输出:%d表示日期 , %thread表示线程名 , %-5level:级别从左显示5个字符宽度%msg:日志消息 , %n是换行符--><pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %L - %msg%n</pattern>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Linux / UNIX:使用nmap命令扫描网络中打开的端口
- 两种 java 向 yarn 提交 spark 任务命令的区别
- Google终于开始革C++的命了
- 未来软件都是去中心化的吗?
- 针对百度搜索平台的https认证的几点建议
- 关于微信小程序过滤器filter的正确使用
- 谷歌优化的 3 种核心类型的面包屑导航
- C#开发一款「微信录音机」 解决了一个困扰半个多月的问题
- 超越“高并发I/O数据库系统”的性能挑战
- 如何成为今日头条的品鉴官?