支持日志框架: Java Util Logging, Log4J2 and Logback, 默认是使用 logback
配置方式: 默认配置文件配置和引用外部配置文件配置
1, 默认配置文件配置
不建议使用: 不够灵活, 对 log4j2 等不够友好
- # 日志文件名, 比如: roncoo.log, 或者是 /var/log/roncoo.log
- logging.file=roncoo.log
- # 日志级别配置, 比如: logging.level.org.springframework=DEBUG
- logging.level.*=info
- logging.level.org.springframework=DEBUG
2, 配置 logback
引用外部配置文件
spring boot 默认会加载
classpath:logback-spring.xml
或者
- classpath:logback-spring.groovy
- .
使用自定义配置文件, 配置方式为:
logging.config=classpath:logback-roncoo.xml
; 注意: 不要使用 logback 这个来命名, 否则 spring boot 将不能完全实例化.
使用基于 spring boot 的配置
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <include resource="org/springframework/boot/logging/logback/base.xml"/>
- <logger name="org.springframework.web" level="DEBUG"/>
- </configuration>
自定义配置
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!-- 文件输出格式 -->
- <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
- <!-- test 文件路径 -->
- <property name="TEST_FILE_PATH" value="logs/info" />
- <!-- pro 文件路径 -->
- <property name="PRO_FILE_PATH" value="logs/warn" />
- <!-- 开发环境 -->
- <springProfile name="dev">
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${PATTERN}</pattern>
- </encoder>
- </appender>
- <logger name="com.roncoo.education" level="debug"/>
- <root level="info">
- <appender-ref ref="CONSOLE" />
- </root>
- </springProfile>
- <!-- 测试环境 -->
- <springProfile name="test">
- <!-- 每天产生一个文件 -->
- <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 文件路径 -->
- <file>${TEST_FILE_PATH}</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 文件名称 -->
- <fileNamePattern>${TEST_FILE_PATH}.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 文件最大保存历史数量 -->
- <MaxHistory>100</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>${PATTERN}</pattern>
- </layout>
- </appender>
- <root level="info">
- <appender-ref ref="TEST-FILE" />
- </root>
- </springProfile>
- <!-- 生产环境 -->
- <springProfile name="prod">
- <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${PRO_FILE_PATH}</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${PRO_FILE_PATH}.%d{yyyy-MM-dd}.log</fileNamePattern>
- <MaxHistory>100</MaxHistory>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>${PATTERN}</pattern>
- </layout>
- </appender>
- <root level="warn">
- <appender-ref ref="PROD_FILE" />
- </root>
- </springProfile>
- </configuration>
3, 配置 log4j
引用外部配置文件
去除 logback 的依赖包, 添加 log4j2 的依赖包
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- 使用 log4j2 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-log4j2</artifactId>
- </dependency>
在 classpath 添加 log4j2.xml 或者 log4j2-spring.xml(spring boot 默认加载)
自定义配置文件
- <?xml version="1.0" encoding="utf-8"?>
- <configuration>
- <properties>
- <!-- 文件输出格式 -->
- <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
- </properties>
- <appenders>
- <Console name="CONSOLE" target="system_out">
- <PatternLayout pattern="${PATTERN}" />
- </Console>
- </appenders>
- <loggers>
- <logger name="com.roncoo.education" level="debug" />
- <root level="info">
- <appenderref ref="CONSOLE" />
- </root>
- </loggers>
- </configuration>
4, 比较
性能比较: Log4J2 和 Logback 都优于 log4j(不推荐使用)
配置方式: Logback 最简洁, spring boot 默认, 推荐使用
5, 配置 logging
参考文档 https://www.jianshu.com/p/077f437eaaca
6, 致谢名单
冯永伟
来源: http://www.bubuko.com/infodetail-2659978.html