7月30日日常工作学习记录
AIM:
troubleshooting
show status
怎样记日志方便troubleshooting
-
对外部的调用封装
对外部系统与模块的依赖调用前后记下日志,方便接口调试
LOG.debug('calling external system' + parameters);
LOG.debug('called successfully. param is' + param);
LOG.warning('failed at calling x system');
-
状态变化
isRunning = true / false;
LOG.info('system is running');
LOG.info('system was interrupted by ' + );
-
系统入口与出口
粒度可以是重要方法级or模块级。记录它的输入输出,方便定位。
-
业务异常
任何业务异常都应该记录下来
-
非预期执行
为程序在“有可能”执行到的地方打印日志。
虽然最终程序的执行结果相同,但是要考虑到是否是正确的路径让程序执行成功,而不是另外的方式执行的,而致使结果相同
很少出现的else情况之中,打印log
程序运行状态可以记录哪些?
程序运行时间 log.info('execution cost : ' + currentTime - startTime);
大批量数据的执行进度 log.debug('current progress : ' + currentPos/total);
-
关键变量及正在做哪些重要的事情: 执行关键逻辑,做io操作等
log.info('x is ' + x);
log.info('calling remote metod :' + params);
应该避免怎样的日志方式
-
混淆信息的log
log应该是清晰准确的
记错位置
-
记错级别 i.e:混淆代码错误和用户错误
不要记录用户的错误行为
-
遗漏信息
要有stacktrace
参考: url-link
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。