Logback使用记录一下

本文详细介绍如何在SpringBoot项目中配置Logback日志,包括添加依赖、自定义logback.xml配置文件,实现多级日志输出,并通过业务代码演示不同日志级别的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LOGBACK

  1. springboot 添加依赖,该依赖自带logback。
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
  1. 在resource下配置logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 定义log 文件的 home 目录  -->
    <property name="LOG_HOME"  value="C:/Users/Administrator/Desktop/logs"></property>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 -->

            <Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client} %msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/trace.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/trace.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </layout>
        <!--  <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>TRACE</level>
             <onMatch>ACCEPT</onMatch>
             <onMismatch>DENY</onMismatch>
            </filter>  -->
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/info.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/debug.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/warn.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/warn.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>



    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOG_HOME}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/error.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--  <logger name="com.mchange" level="INFO"/>
     <logger name="org.springframework" level="WARN"/>
     <logger name="java.sql.Connection" level="DEBUG"/>
     <logger name="java.sql.ResultSet" level="INFO"/>
     <logger name="com.boaotech.util" level="DEBUG"/>  -->

    <root level="TRACE">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="TRACE_FILE" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="DEBUG_FILE" />
        <appender-ref ref="WARN_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>

</configuration>
  1. 在业务代码中打logger
@Service
public class CartServiceImpl implements CartService {
	private static Logger logger = LoggerFactory.getLogger(CartServiceImpl.class);
	@Autowired
	private CartDao cartDao;
	@Override
	public List<Cart> findAll(Cart cart) {
		EntityWrapper<Cart> tWrapper = new  EntityWrapper<>() ;
		//条件查询1,直接entity
		tWrapper.setEntity(cart);
		//条件查询2,指定属性
		//tWrapper.eq("count",1);

		List<Cart> carts = cartDao.selectList(tWrapper);
		if(logger.isDebugEnabled()){
			logger.debug("debug::"+JSON.toJSONString(carts));
		}
		if(logger.isTraceEnabled()){
			logger.trace("trace::"+ JSON.toJSONString(carts));
		}
		//这是不同的级别
		logger.info("=====================info=333333333====================");
		logger.warn("=====================warn=444444444444===================");
		logger.error("=====================error=55555555555================");

		return carts;
	}

4.完成
在对应的目录下可以看到不同级别的日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值