commons.logging1.1.1源代码研究(2)-- 基本使用及配置文件

来源:互联网 发布:大数据的应用和发展 编辑:程序博客网 时间:2024/06/05 02:41

一、Code Guard

为了避免运行时过多的负载,请使用log.is<Priority >()来判断当前是否这个日志级别可以记录

 

二、优先级层次

1.fatal  记录严重及致命的错误

2.error  运行时错误及不希望出现的条件

3.warn  警告(比如:使用了不建议的API,运行时一些不一定是错误的情况)

4.info  一般的运行时提示信息

5.debug  调试信息

6.trace   最详细的细节信息

默认的消息优先级为info

 

三、记录日志的建议

1.检查异常和非检查异常(外部边界)

   如果是由API内部代码引起,则记录信息以debug层次;如果是由调用API的代码引起,则记录堆栈信息以info层次

2.内部边界

   如果异常由内部引起,并且由内部解决;记录以info或debug层次

3.重要的内部边界(比如:跨网络)

   以info层次记录日志

 

四、配置文件

commons-logging.properties  配置文件名称(必须放到项目根目录下)

配置:(分为系统属性和文件属性,文件属性覆盖系统属性,但有些只能通过系统属性或文件属性明确)

1.只从系统属性中读

org.apache.commons.logging.diagnostics.dest -- 指定诊断信息的输出(STDERR、STDOUT或文件名)

org.apache.commons.logging.LogFactory.HashtableImpl  -- 指定<ClassLoader,LogFactory>的缓存哈希表的类名

2.只从文件属性中读

priority  -- 配置文件的优先级,值越大优先级越高(数值型)

在非Webapp中无用;在Webapp中,可以通过不同的ClassLoader读入不同的commons-logging.properties文件

use_tccl  --  是否通过thread context classloader读入日志类

3.从两者(文件属性覆盖系统属性)

org.apache.commons.logging.Log  -- 指定日志器实现类

org.apache.commons.logging.log  -- 指定日志器实现类,同旧版的logging兼容

搜索顺序:

1.查询配置文件属性org.apache.commons.logging.Log
2.如果没找到,得到系统上述属性
3.如果没找到,按照Log4J、JDK14Logger、Jdk13LumberjackLogger、SimpleLog方式产生日志器


org.apache.commons.logging.LogFactory  --  指定日志器工厂的实现类(默认为 org.apache.commons.logging.impl.LogFactoryImpl)

org.apache.commons.logging.Log.allowFlawedContext -- if tolerates bad context classloaders (true /false)

org.apache.commons.logging.Log.allowFlawedDiscovery  -- if tolerates bad logging adapters(true /false)

org.apache.commons.logging.Log.allowFlawedHierarchy  -- if tolerates bad Log class hierarchy(true /false)

 

 

 样例配置:使用SimpleLog 

 

 

样例代码:

 

  

原创粉丝点击