您的位置:首页 > 编程语言 > Java开发

srping boot之日志配置logback和log4j2

2017-07-02 11:27 435 查看
一、默认配置文件配置(不建议使用:不够灵活,对log4j2等不够友好)

日志文件名,比如:drunk.log,或者是 /var/log/drunk.log

logging.file=drunk.log

日志级别配置,比如: logging.level.org.springframework=DEBUG

logging.level.*=info

logging.level.org.springframework=DEBUG

二、引用外部配置文件

2.1logback配置方式:

spring boot默认会加载classpath:logback-spring.xml或者classpath:logback-spring.groovy

使用自定义配置文件,配置方式为:

logging.config=classpath:logback-roncoo.xml

注意:不要使用logback这个来命名,否则spring boot将不能完全实例化

1.使用基于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>


2.自定义配置

<?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="c:/opt/drunk/logs" />
<!-- pro文件路径 -->
<property name="PRO_FILE_PATH" value="/opt/drunk/logs" />

<!-- 开发环境 -->
<springProfile name="dev">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>

<logger name="com.drunk.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}/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>


2.2 log4j配置

2.2.1去除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>


2.2.2 在classpath添加log4j2.xml或者log4j2-spring.xml(spring boot 默认加载)

2.3 自定义配置文件

logging.config=classpath:log4j2-dev.xml

log4j2-dev.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.drunk.education" level="debug" />
<root level="info">
<appenderref ref="CONSOLE" />
</root>
</loggers>

</configuration>


log4j2-test.xml

log4j2-prod.xml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring-boot log4j