Springboot日志配置:
Springboot日志配置分别可以分为自带的日志,医用第三方日志;
以下分别下介绍springboot自带日志配置,引用logback,以及log4j2日志。
1、 默认配置文件配置(不推荐使用):因为不够灵活
配置方式比较简单:在application.properties文件中配置:
#日志文件名,比如:gm-manas.log,或者是 /var/log/gm-manas.log
logging.file=/opt/log/gm-manas.log
#日志级别配置,比如: logging.leAvel.org.springframework=DEBUG
logging.level.*=info
logging.level.org.springframework=DEBUG
例如:
2、使用logback日志框架配置(spring的默认配置框架方式)
spring boot默认会加载classpath:logback-spring.xml文件。
使用自定义配置文件,配置方式为:在application.properties文件中配置:
#配置日志,日志路径可以自定义
logging.config=classpath:log/logback-gm.xml
日志文件在src/main/resource/log/logback-gm.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="e:/opt/gm/test/logs" />
<!-- pro文件路径 -->
<property name="PRO_FILE_PATH" value="/opt/gm/prod/logs" />
<!-- 开发环境 -->
<springProfile name="dev">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>
<!-- 日质包路径 -->
<logger name="com.gm.manas.web" 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>
<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>
3、log4j2配置
首先去除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>
例如:
然后在application.properties文件中配置:
logging.config=classpath:log4j2-dev.xml
例如:
最后配置xml:log4j2-dev.xml,注意:在springboot中log4j不支持如2中的配置,根据不同环境需要配置不同xml,比如spring.profiles.active=prod,则需要log4j2-prod.xml文件,并配置相应的内容。
<?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>