打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring Boot日志配置-logback和log4j2

SpringBoot默认使用的 commons-logging 日志框架,   默认的日志输出级别: info

使用commons-logging 配置文件对日志的配置:

//只需要在配置文件中更改默认值//设置日志输出级别为debugDebug=true//日志文件名,比如:suke.log,或者是 /var/log/suke.loglogging.file=suke.log//设置目录logging.path=/var/log//日志级别配置,比如: logging.level.org.springframework=DEBUGlogging.level.*=infologging.level.org.springframework=DEBUG

不够灵活,  多环境切换的时候, 对日志文件经常进行修改

使用logback(推荐)

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

注意:如果logback的配置文件不叫:logback-spring.xml

// 如果日志配置文件名不是logback-spring.xml, 需要在springBoot配置文件中指明使用哪个文件// logging.config=logback配置文件logging:   config: classpath:logback-demo.xml

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:/opt/hj/logs" />      <!-- prod文件路径 :生产环境 , linux系统-->    <property name="PROD_FILE_PATH" value="/opt/hj/logs" />        <!-- 开发环境 -->    <springProfile name="dev">        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">            <encoder>                <pattern>${PATTERN}</pattern>            </encoder>        </appender>        <!-- 设置那个包下的日志的输出级别             com.zl.app 包以及子包下的所有类的输出级别:debug  (更改包名,输出级别)        -->        <logger name="com.springBootThymeleaf" level="debug"/>        <logger name="org.springframework" level="debug"/>        <!-- 整个项目的日志输出级别:  info-->        <root level="info">            <appender-ref ref="CONSOLE" />        </root>    </springProfile>    <!-- 测试环境 -->    <springProfile name="test">        <!-- 每天产生一个文件 -->        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">            <!-- 文件路径 -->            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                <!-- 文件名称:                          info.2020-07-06.log                        info.2020-07-07.log                 -->                <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">            <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>

使用或者更改环境:

spring:  profiles:    active: dev (或者test/prod 会自动加载)

 使用log4j2配置

1.去除logback的依赖包,添加log4j2的依赖包

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <!-- 基于log4J2的配置,需要排除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>

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

application.yml 扫描自定义配置文件

logging:  config: classpath:log4j2-dev.xml

Log4j的配置文件:

<?xml version="1.0" encoding="utf-8"?><configuration>    <properties>        <!-- 文件输出格式 -->        <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss} |-%-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>

比较

  性能比较:Log4J2 和 Logback 都优于 log4j(不推荐使用)

  配置方式:Logback最简洁,spring boot默认,推荐使用

来源:https://www.icode9.com/content-4-719251.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring Boot 日志配置 logback和log4j2
spring boot 学习(六)spring boot 各版本中使用 log4j2 记录日志
最牛逼的日志框架,性能无敌,横扫所有对手。。
spring-boot增加日志配置
Spring Boot 2 实战: 集成log4j2日志框架
Spring MVC集成slf4j-logback(转:http://blog.csdn.net/sadfishsc/article/details/47160213)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服