日志级别的选择:Debug、Info、Warn、Error还是Fatal
软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志,不管用什么,这些东东大多是大同小异的,一般都提供了这样5个日志级别:
× Debug
× Info
× Warn
× Error
× Fatal
一个等级比一个高(这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,明白这一点很重要,这里Log4j有一个规则:假设设置了级别为P,如果发生了一个级别Q比P高,则可以启动,否则屏蔽掉),但是在具体开发中,关于应该如何选择适应的等级,却没有找到好的文章进行说明。记录一下自己的一些看法,以便日后使用吧。
=== Debug ===
这个级别最低的东东,一般的来说,在系统实际运行过程中,一般都是不输出的。
因此这个级别的信息,可以随意的使用,任何觉得有利于在调试时更详细的了解系统运行状态的东东,比如变量的值等等,都输出来看看也无妨。
当然,在每一个 Debug 调用之前,一定要加上 If 判断。
=== Info ===
这个应该用来反馈系统的当前状态给最终用户的,所以,在这里输出的信息,应该对最终用户具有实际意义,也就是最终用户要能够看得明白是什么意思才行。
从某种角度上说,Info 输出的信息可以看作是软件产品的一部分(就像那些交互界面上的文字一样),所以需要谨慎对待,不可随便。
=== Warn、Error、Fatal ===
警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态,他们之间的区别,要区分还真不是那么简单的事情。我大致是这样区分的:
所谓警告,应该是这个时候进行一些修复性的工作,应该还可以把系统恢复到正常状态中来,系统应该可以继续运行下去。
所谓错误,就是说可以进行一些修复性的工作,但无法确定系统会正常的工作下去,系统在以后的某个阶段,很可能会因为当前的这个问题,导致一个无法修复的错误(例如宕机),但也可能一直工作到停止也不出现严重问题。
所谓Fatal,那就是相当严重的了,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话,可以肯定必然会越来越乱。这时候采取的最好的措施不是试图将系统状态恢复到正常,而是尽可能地保留系统有效数据并停止运行。
也就是说,选择 Warn、Error、Fatal 中的具体哪一个,是根据当前的这个问题对以后可能产生的影响而定的,如果对以后基本没什么影响,则警告之,如果肯定是以后要出严重问题的了,则Fatal之,拿不准会怎么样,则 Error 之。
来源:http://blog.chinaunix.net/uid-26434689-id-3017353.html
最新文章
- 如何利用OEM工具(ORACLE ENTERPRISE MANAGER),增加表空间
- ReflectUitls类的编写和对反射机制的解析
- 转:PCL+VS2010环境配置
- Apahce映射网络路径
- Passing JavaScript Objects to Managed Code
- cordova发送邮件插件:ngcordova plugin-Email Composer
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图实现Toorbar功能(四)
- Oracle EBS-SQL (BOM-3):检查期间新增Bom数量.sql
- mysql版本,根据经纬度定位排序sql
- spring ref &;history&;design philosophy
- Pycharm 自定义快捷键
- Java 容器源码分析之ArrayBlockingQueue和LinkedBlockingQueue
- orocos_kdl学习(一):坐标系变换
- Beta阶段——第5篇 Scrum 冲刺博客
- [UE4]背景模糊
- Java学习之String
- 有用的java工具
- MD5骨骼动画模型加载(一)
- 对于equals和==的理解
- javascript如何封装函数
热门文章
- Linux各版本的本地root密码破解方法
- 2015 Multi-University Training Contest 1 - 1002 Assignment
- SQL Server case when 日期字符串转换 多表查询 嵌套子查询
- 重构if...else...或者switch程序块
- WPF 程序自删除(自毁)|卸载程序删除
- 【AngularJS学习笔记】00 序
- 与众不同 windows phone (45) - 8.0 语音: TTS, 语音识别, 语音命令
- kFreeBsd 国内开源镜像站汇总
- UGUI之Toggle使用
- CSS 最核心的四个概念(摘录)