04.启用Log4j2日志框架-尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)

日志的重要组件

1. 日志信息优先级

  1. TRACE:追踪
  2. DEBUG:调试
  3. INOFO:信息
  4. WARN:警告
  5. ERROR:错误
  6. FATAL:严重错误
    当设置了高级别的日志,比该日志级别低的日志都不会显示。

2. 日志输出的位置

可以指定日志输出到控制台还是文件

3. 日志信息的输出格式

可以控制日志信息的显示内容

使用Log4j2

引入Log4j2依赖

<dependency>  
    <groupId>org.apache.logging.log4j</groupId>  
    <artifactId>log4j-core</artifactId>  
    <version>2.19.0</version>  
</dependency>
<dependency>  
    <groupId>org.apache.logging.log4j</groupId>  
    <artifactId>log4j-slf4j2-impl</artifactId>  
    <version>2.19.0</version>  
</dependency>

src/main/resources/下创建log4j2.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<configuration>  
    <loggers>  
        <root level="DEBUG">  
            <appender-ref ref="spring6log"/>  
            <appender-ref ref="RollingFile"/>  
            <appender-ref ref="log"/>  
        </root>  
    </loggers>  
    <appenders>  
        <!--输出日志信息到控制台-->  
        <console name="spring6log" target="SYSTEM_OUT">  
            <!--控制台输出的格式-->  
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/>  
        </console>  
        <!--文件会打印所有信息,这个log每次运行都会自动清空。fileName是文件的输出路径,如果不存在会被创建-->  
        <File name="log" fileName="d:/spring6_log/test.log" append="false">  
            <PatternLayout pattern="%d{HH:mm:ss SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
        </File>  
        <!--打印所有信息,如果单次大小超过size则size大小的日志会自动存到年-月文件夹下面进行压缩存档-->  
        <RollingFile name="RollingFile" fileName="d:/spring6_log/app.log"  
                     filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">  
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            <SizeBasedTriggeringPolicy size="50MB"/>  
            <!--设置同一文件夹下最多有的文件数,默认为7-->  
            <DefaultRolloverStrategy max="20"/>  
        </RollingFile>  
    </appenders>  
</configuration>

重新运行test1,代码在[[02.创建最简单的Spring模块]]最后一个代码块
控制台输出:

2023-05-19 15:03:37 663 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@3bcd05cb
2023-05-19 15:03:37 778 [main] DEBUG org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loaded 1 bean definitions from class path resource [bean.xml]
2023-05-19 15:03:37 806 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'user'
无参构造被调用了
add.....

手动写入日志

  1. 创建Logger对象

    import org.slf4j.Logger;  
    import org.slf4j.LoggerFactory;  
    public class TestUser {  
        private Logger logger = LoggerFactory.getLogger(TestUser.class);
    }
    
  2. 手动写日志

    @Test  
    public void Test3(){  
    Test1();  
    logger.info("Test1调用成功了");  
    }
    
  3. 控制台输出:

    2023-05-19 15:16:41 461 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ca18a14
    2023-05-19 15:16:41 582 [main] DEBUG org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loaded 1 bean definitions from class path resource [bean.xml]
    2023-05-19 15:16:41 609 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'user'
    无参构造被调用了
    add.....
    2023-05-19 15:16:41 640 [main] INFO TestUser - Test1调用成功了
    

    app.log:

    2023-05-19 at 15:03:37 806 DEBUG org.springframework.beans.factory.support.DefaultSingletonBeanRegistry 225 getSingleton - Creating shared instance of singleton bean 'user'
    2023-05-19 at 15:16:41 461 DEBUG org.springframework.context.support.AbstractApplicationContext 630 prepareRefresh - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ca18a14
    2023-05-19 at 15:16:41 582 DEBUG org.springframework.beans.factory.xml.XmlBeanDefinitionReader 393 doLoadBeanDefinitions - Loaded 1 bean definitions from class path resource [bean.xml]
    2023-05-19 at 15:16:41 609 DEBUG org.springframework.beans.factory.support.DefaultSingletonBeanRegistry 225 getSingleton - Creating shared instance of singleton bean 'user'
    2023-05-19 at 15:16:41 640 INFO  TestUser 34 Test3 - Test1调用成功了
    

    test.log:

    15:16:41 461 DEBUG org.springframework.context.support.AbstractApplicationContext 630 prepareRefresh - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6ca18a14
    15:16:41 582 DEBUG org.springframework.beans.factory.xml.XmlBeanDefinitionReader 393 doLoadBeanDefinitions - Loaded 1 bean definitions from class path resource [bean.xml]
    15:16:41 609 DEBUG org.springframework.beans.factory.support.DefaultSingletonBeanRegistry 225 getSingleton - Creating shared instance of singleton bean 'user'
    15:16:41 640 INFO  TestUser 34 Test3 - Test1调用成功了
    
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值