如何写好日志
总结:建立数据字典,标准化日志格式
?
<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->
Trace, debug , info , warn , error , fatal
?
If(Log.isDebugEnabled()){
// doyour things
}
?
if(logger.isDebugEnabled()){
logger.debug(String.format("Registeredbean definition for imported @Configuration class %s",configBeanName));
}
?
log.debug("查询搜索引擎失败,没有查询到,搜索条件为"+ sc.getSearchParamString(""));
?
log.error("查询spu或者是通过itemid获得item失败,原因是IC异常",e);
?
log.error("Tablewtm_charge_last 'select' operation Error! userId="
+userId + ",type=" + type, e);
2.1.2日志信息构成
??通过配置,日志信息包括两部分,一部分是由日志引擎通过配置生成的信息,如信息来源的包、类、对应源码的行数,日志级别等信息,而另一部分是用户通过接口入参手工设置的对象信息,在写日志前,将调用对象的toString()将其转换成字符串。对于?error和fatal级别的日志,我们约定必须为每个日志指定错误日志的类型,错误的日志的类型和日志信息一起作为入参传入写日志引擎,错误类型用[]括起来。如:
logger.error(“[DB001]关闭数据连接时出错。”)
logger.fatal(“[HIB001]关闭Hibernate会话时发生异常。”);
logger.error(“[CFG001]审批流程配置信息不正确。”);
?
此外必须为每条日志类型构造说明字典:
错误编号
说明
产生原因
解决方法
DB001
关闭数据连接失败
数据连接打开的光标太多,会话因网络终止
仔细检查程序,查看该连接创建的Statement或PrepareStatemetn在用完后没有及时关闭。检查数据库的配置,或网络连接方面的硬件问题
HIB001
关闭Hibernate会话失败
会话对应的数据连接打开的光标太多,会话因网络终止
仔细检查程序,查看该会话对应的数据连接创建的Statement或PrepareStatemetn在用完后没有及时关闭。检查数据库的配置,或网络连接方面的硬件问题
CFG001
审批流程配置信息不正确
没有正确配置T_FLOW表的信息
每个流程在T_Flow表中都必须配置且只须配置一条配置信息,配置信息必须包括流程名、流程编号的信息,流程编号不能和其他流程编号重复。
…
…
…
…
?