LOG4J COMMON-LOGGING 简单认识
来源:互联网 发布:在淘宝被骗了怎么办 编辑:程序博客网 时间:2024/05/17 09:14
Common-logging:这个包中提供了一个LOG接口,只要实现了这个接口,他就是一个名副其实的LOGGER组件,因此Log4JLogger类实现了这个接口,
还有类似jdk的sun logger(Jdk14Logger)也实现了这个LOG接口,而LogFactory 是一个专为提供 Log 的工厂(abstract class),LogFactoryImpl继承了这个抽象类,也就是说
Common-logging中的LogFactory 为我们统一了这些日志的接口,如果不使用LOG4J,common-logging只为我们提供了一个简单的实现SimpleLog,功能不强。
LogFactory(负责创建LOG实例),执行步骤如下:从LogSource.java的源代码中可以看出其加载顺序
1.Common-logging会去classpath下寻找配置文件commons-logging.properties文件,
2.如果没有则查找是否定义了系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类
3.应用程序中有没有Log4J.jar,有的话会去使用相关的包装类LOG4jLogger
4.使用应用程序运行在jdk的系统中,使用包装类(jdk14Logger)
5.使用简易日志包装类(SimpleLog)
当Common-logging和Log4J一起使用的话,就要调用LogFactory.getLog()
LOG4J
信息级别:fatal,error,warn,info,debug,trace,单独使用Log4J的话,直接调用 Logger.getLogger(), 使用Log4J,那么log4j.properties文件就是必须的了,Log4J中的
LogManager会先查看classpath下是否有log4j.xml文件,没有才会加载log4j.properties,有的话就使用log4j.xml,当使用Maven的时候,当引入了jxl.jar的时候,由于这个jar
下面有一个log4j.xml文件,所以web项目就不会加载自己的log4j.properties,所以导致日志没有输出,需要手工重新configure一下:
org.apache.log4j.LogManager.resetConfiguration();
然后:org.apache.log4j.PropertyConfigurator.configure("ClassLoader.getSystemResource("log4j.properties")"); 或者org.apache.log4j.xml.DOMConfigurator.configure
("ClassLoader.getSystemResource("log4j.properties")");
Log4J.properties文件的内容说明
log4j.rootLogger=日志级别,appender1, appender2, ….
例如:log4j.rootLogger=DEBUG,CONSOLE,APPLOG:后面的appender1和append2表示输出日志到哪里
CONSOLE表示 log4j.appender.CONSOLE
APPLOG表示 log4j.appender.APPLOG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender配置表示,日志输出到控制台
rootLogger默认是对整个工程生效
Appender包括:
ConsoleAppender(控制台)
FileAppender(文件)
DailyRollingFileAppender(每天产生一个日志文件)
RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)
WriteAppender(将日志信息以流格式发送到任意指定的地方)
JDBCAppender(将日志信息保存到数据库中)
log4j.appender.APPLOG.File=/data1/logs/tomcat/server1/AppAccessLog 表示输出文件的目录
log4j.appender.APPLOG.MaxFileSize=最大文件大小
log4j.appender.MaxBackupIndex=备份文件个数
log4j.appender.ServerDailyRollingFile.Append=true 追加继续往后写
log4j.appender.ServerDailyRollingFile.DatePattern=日志后缀格式
log4j.appender.APPLOG.layout=org.apache.log4j.日志布局格式
HTMLLayout(以HTML表格形式布局)
SimpleLayout(包含日志信息的级别和信息字符串)
TTCCLayout(包含日志产生的时间,执行绪,类别等信息)
PatternLayout(可以灵活的指定布局格式,常用)
log4j.appender.appender1.APPLOG.ConversionPattern=日志输出格式
例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
可参考:http://blog.sina.com.cn/s/blog_4e4dd5570100qowy.html
#缓存日志,定义缓存的日志级别和CACHELOG输出方式
log4j.logger.cache=ERROR, CACHELOG (cache指定在cache包下的内容)
#后台管理日志,定义后台管理的日志级别和ADMINLOG的输出方式
log4j.logger.admin=ERROR, ADMINLOG (admin指定在admin包下的内容)
补充:有关日志文件输出路径
如果不指定路径,日志文件是输出在运行目录的,也就是应用服务器的bin目录下
- LOG4J COMMON-LOGGING 简单认识
- Log4j与common-logging
- log4j 和common-logging
- Log4j与common-logging
- Log4j与common-logging
- log4j common-logging
- Log4j 与 common-logging
- Log4j与common-logging
- Log4J and Apache common logging
- 从common-logging谈log4j
- 从common-logging谈log4j
- common-logging+log4j实现机制
- Log4j与common-logging 介绍
- 日志sl4j、log4j、common-logging
- 从common-logging谈log4j
- log4j和common-logging结合使用
- Log4j和common-logging的使用
- Common-logging 与 Log4j的结合使用
- linux mmap 详解
- 百度:41亿打造搜索“机械人心”
- 生成模型与判别模型
- 核方法原理
- 简单的签到程序
- LOG4J COMMON-LOGGING 简单认识
- Linux 下安装、配置、汉化JIRA6.1.5
- 【Unity3D自学记录】AssetBundles的使用
- js控制tr显示或者隐藏
- 我的shiro之旅: 十五 shiro 登录成功后,跳转到登录前的页面
- ADS中头文件路径设置及查找
- mysql常用的字符串函数
- CodeSmith : Template 指令
- Fedora 19解决google浏览器不能启动的问题