Java集成logback日志管理

首先导入相关logback依赖,本次创建的测试项目为maven 3.61,jdk1.8

logback的依赖
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>

然后是配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="true">//如果debug为true表示项目启动时会检索logback相关的启动信息
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">//表示输出到控制台
        <Target>System.out</Target>
        <encoder>
            <pattern>%highlight(%-5level) %d{HH:mm:ss.SSS} %m %n</pattern>
        </encoder>
    </appender>
 
    <!--保存出错的信息-->
<!--    <appender name="SQL" class="ch.qos.logback.core.FileAppender">-->//把日志文件输出到指定目录下,保存为文件
<!--        <file>sql.log</file>-->
<!--        <append>true</append>-->
<!--        <immediateFlush>true</immediateFlush>-->
<!--        <encoder>-->
<!--            <pattern>%d{HH:mm:ss.SSS} %m %n</pattern>-->
<!--        </encoder>-->
<!--    </appender>-->
 
    <logger name="cn.schoolwow.quickdao" level="DEBUG" additivity="false">//日志过滤器,name表示需要过滤的包 level表示过滤级别 trace info debug error all 等等,不区分大小写
        <appender-ref ref="stdout" />
    </logger>
 
    <logger name="top.redheart.logback.logbacktest" level="info" additivity="false">
        <appender-ref ref="stdout"></appender-ref>
    </logger>
 
     <root level="debug">
        <appender-ref ref="stdout" />
    </root>
</configuration>

  

这是测试效果

 

级别测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public static void main(String[] args) {
//        User user = new User();
//        user.setName("zs");
//        user.setAge("29");
//        long save = dao.save(user);
//        logger.info("[插入用户信息]user:{},结果:{}",user,save>0?"成功":"失败");
 
        logger.trace("[这是trace级别的]");
        logger.info("[这是info级别的]");
        logger.debug("[这是debug级别的]");
        logger.warn("[这是warn级别的]");
        logger.error("[这是error级别的]");
 
    }

  1):当配置文件级别为trace时

1
2
3
<root level="trace">
       <appender-ref ref="stdout"/>
</root>

  结果为:

TRACE 16:41:38.704 [这是trace级别的]
INFO 16:41:38.704 [这是info级别的]
DEBUG 16:41:38.704 [这是debug级别的]
WARN 16:41:38.704 [这是warn级别的]
ERROR 16:41:38.705 [这是error级别的]

2)当配置文件级别为info时

1
2
3
<root level="info">
       <appender-ref ref="stdout"/>
</root>

 结果为:

INFO 16:43:37.873 [这是info级别的]
WARN 16:43:37.874 [这是warn级别的]
ERROR 16:43:37.874 [这是error级别的]

 

3)当配置文件级别为debug时

1
2
3
<root level="debug">
       <appender-ref ref="stdout"/>
</root>

  结果为:

INFO 16:44:31.944 [这是info级别的]
DEBUG 16:44:31.944 [这是debug级别的]
WARN 16:44:31.944 [这是warn级别的]
ERROR 16:44:31.944 [这是error级别的]

4)当配置文件为warn时

1
2
3
<root level="warn">
        <appender-ref ref="stdout"/>
</root>

  结果为:

WARN 16:45:34.934 [这是warn级别的]
ERROR 16:45:34.936 [这是error级别的]

5)当配置文件级别为error时

1
2
3
<root level="error">
        <appender-ref ref="stdout"/>
</root>

  结果为:

ERROR 16:46:14.858 [这是error级别的] 

 

总结:

trace显示的信息最多,包括所有级别的信息,其次就是debug,当级别为info,warn,error时,不会显示trace,和debug的信息

故得出的结果

trace>debug>info>warn>error

 

配置细节,以后再更新。

 

posted @   RandomObject  阅读(2219)  评论(0编辑  收藏  举报
编辑推荐:
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
阅读排行:
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 对比使用DeepSeek与文新一言,了解DeepSeek的关键技术论文
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· DeepSeekV3+Roo Code,智能编码好助手
· AI编程:如何编写提示词
点击右上角即可分享
微信分享提示