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
配置细节,以后再更新。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 对比使用DeepSeek与文新一言,了解DeepSeek的关键技术论文
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· DeepSeekV3+Roo Code,智能编码好助手
· AI编程:如何编写提示词