java-Log-打印类-学习总结

本文总结了Java日志打印的要点,包括ERROR、WARN、INFO、DEBUG和TRACE五个级别的应用场景。强调用户级别日志应清晰易懂,如Error用于记录严重影响的异常,Warn表示警告但不妨碍运行的情况,Info记录系统运行信息。开发级别日志用于调试,提供详细变量信息。Log应包含上下文、考虑读者理解,并区分变量与文本,确保在Error或Warn级别时记录完整异常信息。

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

LOG 打印类

1.rootLogger后面跟着输出日志的级别:

1.1 ERROR 为严重错误 主要是程序的错误
1.2 WARN 为一般警告,比如session丢失
1.3 INFO 为一般要显示的信息,比如登录登出
1.4 DEBUG 为程序的调试信息
Logger中有五个级别:track,debug,info,warn,error。

3.1.1 用户级别
Error、Warn和Info这三个级别的Log会出现在生产环境上,他们必须是运维人员能阅读明白的
3.1.1.1 Error
影响到程序正常运行、当前请求正常运行的异常情况,例如:
打开配置文件失败
第三方应用网络连接异常
SQLException
不应该出现的情况,例如:
某个Service方法返回的List里面应该有元素的时候缺获得一个空List
做字符转换的时候居然报错说没有GBK字符集
3.1.1.2 Warn
不应该出现但是不影响程序、当前请求正常运行的异常情况,例如:
有容错机制的时候出现的错误情况
找不到配置文件,但是系统能自动创建配置文件
即将接近临界值的时候,例如:
缓存池占用达到警告线
3.1.1.3 Info
系统运行信息
Service方法的出入口
主要逻辑中的分步骤
外部接口部分
客户端请求参数和返回给客户端的结果
调用第三方时的调用参数和调用结果
3.1.2 开发级别
Debug和Trace这俩个级别主要是在开发期间使用或者当系统出现问题后开发人员介入调试的时候用的,需要有助于提供详细的信息。
3.1.2.1 Debug
用于记录程序变量,例如:
多次迭代中的变量
用于替代代码中的注释
3.1.2.2 Trace
主要用于记录系统运行中的完整信息,比如完整的HTTP Request和Http Response
3.2 Log中的要点
3.2.1 Log上下文
在Log中必须尽量带入上下文的信息,对比以下俩个Log信息,后者比前者更有作用
“开始导入配置文件”
“开始导入配置文件[/etc/myService/config.properties]”
3.2.2 考虑Log的读者
对于用户级别的Log,它的读者可能是使用了你的框架的其他开发者,可能是运维人员,可能是普通用户。你需要尽量以他们可以理解的语言来组织Log信息,如果你的Log能对他们的使用提供有用的帮助就更好了。
下面的两条Log中,前者对于非代码维护人员的帮助不大,后者更容易理解。
“开始执行getUserInfo 方法,用户名[jimmy]”
“开始获取用户信息,用户名[jimmy]”
下面的这个Log对于框架的使用者提供了极大的帮助
“无法解析参数[12 03, 2013],birthDay参数需要符合格式[yyyy-MM-dd]”
3.2.3 Log中的变量用[]与普通文本区分开来
把变量和普通文本隔离有这么几个作用
在你阅读Log的时候容易捕捉到有用的信息
在使用工具分析Log的时候可以更方便抓取
在一些情况下不容易混淆
对比以下下面的两条Log,前者发生了混淆:
“获取用户lj12月份发邮件记录数”
“获取用户[lj1][2]月份发邮件记录数”
3.2.4 Error或者Warn级别中碰到Exception的情况尽量log 完整的异常信息
Error和Warn级别是比较严重的情况,意味着系统出错或者危险,我们需要更多的信息来帮助分析原因,这个时候越多的信息越有帮助。这个时候最好的做法是Log以下全部内容:
你是在做什么事情的时候出错了
你是在用什么数据做这个事情的时候出错了
出错的信息是什么
对比下面三个Log语句,第一个提供了详尽的信息,第二个只提供了部分信息,Exception的Message不一定包含有用的信息,第三个只告诉你出错了,其他的你一无所知。
log.error(“获取用户[{}]的用户信息时出错”,userName,ex);
log.error(“获取用户[{}]的用户信息时报错,错误信息:[{}]”,userName,ex.getMessage());
log.error(“获取用户信息时出错”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值