日志
发布日期:2022-07-08 02:55:52
浏览次数:44
分类:技术文章
本文共 926 字,大约阅读时间需要 3 分钟。
1、日志级别
日志级别 | 描述 |
---|---|
OFF | 关闭:最高级别,不输出日志。 |
FATAL | 致命:用于输出可能会导致应用程序终止(崩溃)的错误。 |
ERROR | 错误:用于输出程序的错误(这些错误不会导致程序崩溃)。 |
WARN | 警告:用于输出警告信息,提示出可能出现的问题。 |
INFO | 信息:用于输出应用运行过程的详细信息。 |
DEBUG | 调试:用于输出更细致的对调试应用有用的信息。 |
TRACE | 跟踪:用于输出更细致的程序运行轨迹。 |
ALL | 所有:用于输出所有级别信息(包括自定义级别)。 |
2、日志格式变量介绍
-
%level:表示输出日志级别 ;
- %date:表示日志发生时的时间,可缩写为 %d;
- %logger:用于输出 Logger 的类路径,包名+类名,{n}限定了输出长度,如果输出长度不够,尽可能显示类名、压缩包名;
- %thread:当前线程名;
- %M:日志发生时的方法名字;
- %L:日志调用所在代码行,线上运行时不建议使用此参数,因为获取代码行对性能有消耗;
- %m:日志、消息;
- %n:日志换行。
3、规范
3.1、不使用下面的拼接方式
log.info("username: " + username + " IP: "+ ip + "platform: " + platform);
当日志级别为 WARN 或 ERROR 时,该日志不打印,但仍然会进行字符串拼接,浪费资源。
应改为下面占位符方式
log.info("username: {} IP: {} platform: {}", username, ip, platform);
3.2、完整的堆栈信息
当发生异常时要将完整的堆栈信息打印出来,这样才能更准确的定位问题,而下面这种方式只会打印基本的错信息,比如只会告诉你发生了空指针,但你根本不知道发生在了哪里。
log.error("xxx错误:{}", e.getMessage());
正确的方式
log.error("xxx错误:{}", e.getMessage(), e);
3.3使用@slf4j
推荐使用 Lombok 框架的 @Slf4j 注解开启日志,减少样板代码的编写提升效率,还能避免书写错误导致的问题
未完待续。。
转载地址:https://blog.csdn.net/weixin_43163261/article/details/107915517 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月13日 03时03分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
强烈推荐 20 个免费和开源数据可视化工具
2019-04-27
“失败”的北漂十年,我真的尽力了。。。
2019-04-27
为什么使用 MD5 存储密码非常危险
2019-04-27
美团点评实时数仓实践
2019-04-27
Guava学习之Lists
2019-04-27
安装JUDDI服务器以及发布WSDL:第二部分,发布WSDL
2019-04-27
一文彻底搞懂令人疑惑的Java和JDK的版本命名!
2019-04-27
listview学习之simpleadapter详细介绍
2019-04-27
【Unity3D】 灯光学习
2019-04-27
Python3《机器学习实战》学习笔记(三):决策树实战篇之为自己配个隐形眼镜
2019-04-27
学生成绩信息管理c++
2019-04-27
Qt网络编程———TCP(1)
2019-04-27
java 构造方法中super()和this()
2019-04-27
华为HCIA-datacom 学习笔记汇总目录
2019-04-27
第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史
2019-04-27
v-if和v-show的区别
2019-04-27
Linux下创建用户,分组,配置jdk, tomcat
2019-04-27
HikariCP、MySQL Configuration 性能优化
2019-04-27