04_SpringBoot中日志的配置和使用
2018-01-26 17:32
513 查看
使用Logback作为日志框架:
配置 logback(官方推荐使用)
spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。
在 src/main/resources 下创建 logback-spring.xml 文件,内容如下:
<?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="d:/test.log" /> <!-- pro生产环境下日志文件路径 --> <property name="PRO_FILE_PATH" value="/opt/test/log" /> <!-- 开发环境 --> <springProfile name="dev"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${PATTERN}</pattern> </encoder> </appender> <logger name="com.light.springboot" 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}/info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 文件最大保存历史数量 --> <MaxHistory>100</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <logger name="com.light.springboot" level="debug" /> <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}/warn.%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>
其中,springProfile 标签的 name 属性对应 application.properties 中的 spring.profiles.active 的配置。
即 spring.profiles.active 的值可以看作是日志配置文件中对应的 springProfile 是否生效的开关。
使用Log4J2作为日志框架:
如果使用log4j2作为日志记录框架,那么首先第一步,需要祛除springboot默认的logback:并加入log4j2的依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--去除springboot默认的logback的依赖--> <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>
log4j2 不能像 logback 那样在一个文件中设置多个运行环境下的日志配置,因此只能命名 3 个不同名称的日志文件,分别在 application-dev,application-test 和 application-prod 中配置 logging.config 选项。
除了在日志配置文件中设置参数之外,还可以在 application-*.properties 中设置,日志相关的配置:
logging.config=classpath:log4j2-spring.xml logging.config # 日志配置文件路径,如 classpath:logback-spring.xml logging.exception-conversion-word # 记录异常时使用的转换词 logging.file # 记录日志的文件名称,如:test.log logging.level.* # 日志映射,如:logging.level.root=WARN,logging.level.org.springframework.web=DEBUG logging.path # 记录日志的文件路径,如:d:/ logging.pattern.console # 向控制台输出的日志格式,只支持默认的 logback 设置。 logging.pattern.file # 向记录日志文件输出的日志格式,只支持默认的 logback 设置。 logging.pattern.level # 用于呈现日志级别的格式,只支持默认的 logback 设置。 logging.register-shutdown-hook # 初始化时为日志系统注册一个关闭钩子
在项目中进行日志记录
运行访问:
运行结果如下:
相关文章推荐
- 详解Spring Boot 使用slf4j+logback记录日志配置
- Spring Boot实战之配置使用Sentry上报错误日志(一)
- SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)
- 使用sfl4j和logback在spring boot中进行日志配置
- Spring Boot实战之配置使用Logback进行日志记录
- 携程Apollo(阿波罗)配置中心Spring Boot迁移日志组件,使用配置中心进行管理的思路
- spring boot使用logback实现多环境日志配置详解
- Spring Boot实战之配置使用Sentry上报错误日志(二)
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- 详解Spring Boot配置使用Logback进行日志记录的实战
- SpringBoot学习——使用logback配置日志
- SpringBoot配置log4j输出日志
- Spring boot中使用log4j记录日志
- Spring Boot 属性配置和使用(转)
- Spring Boot 使用 Druid 和监控配置
- 46. Spring Boot中使用AOP统一处理Web请求日志【从零开始学Spring Boot】
- 基于Spring AOP和Groovy日志模板配置的日志记录框架的二次实现与使用案例
- Spring Boot使用Druid和监控配置
- (15)Spring Boot使用Druid和监控配置【从零开始学Spring Boot】