log4j的使用

来源:互联网 发布:合肥seo网站推广外包 编辑:程序博客网 时间:2024/06/03 20:38

一. 理解log4j

Log4j是用来做系统日志,它可以配置输出到任意流管道.有一个配置文件放在src下面在编译后就到了bin下面了,实际运行的时候读取的配置也是bin下面的log4j.properties。也可以配置为xml文件.

二. 一般的配置文件

 

#指明日志的级别是INFO级别的,后面的参数都是输出的管道参数名称#log4j.rootLogger = [Level],管道参数,管道参数...#Level的所有级别#OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL#一般使用ERROR,INFO,DEBUG#ERROR一般用于Exception#INFO一般用于系统级别的提示输出#DEBUG一般用于开发调试#当然这些是个人理解#log4j.rootCategory我还没有明白,再学学就知道了log4j.rootCategory=INFO, stdout , R ##############说明区域一开始##############这里就说明了第一个参数stdout管道的输出配置#输出道控制台#log4j.appender.参数 = org.apache.log4j.ConsoleAppender#输出到文件#log4j.appender.参数 = org.apache.log4j.FileAppender#输出到文件,每天产生一个#log4j.appender.参数 = org.apache.log4j.DailyRollingFileAppender#输出到文件,达到指定大小就产生新的日志文件#log4j.appender.参数 = org.apache.log4j.RollingFileAppender#输出到任意指定的地方,这个我还没有搞清除#log4j.appender.参数 = org.apache.log4j.WriterAppender##############说明区域一结束############# log4j.appender.stdout=org.apache.log4j.ConsoleAppender ##############说明区域二开始##############布局形式#HTML表格形式布局#log4j.appender.参数.layout = org.apache.log4j.HTMLLayout#指定布局模式#log4j.appender.参数.layout = org.apache.log4j.PatternLayout#包含日志信息的级别和信息字符串#log4j.appender.参数.layout = org.apache.log4j.SimpleLayout#包含日志产生的时间、线程、类别等等信息#log4j.appender.参数.layout = org.apache.log4j.TTCCLayout##############说明区域二结束############# log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  ##############说明区域三开始##############布局的具体格式,是对PatternLayout的具体描述#log4j.appender.stdout.layout.ConversionPattern#%m 输出代码中指定的消息#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL#%r 输出自应用启动到输出该log信息耗费的毫秒数#%c 输出所属的类目,通常就是所在类的全名#%t 输出产生该日志事件的线程名#%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格#式,比如:#%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:#10:28,921#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。#[QC]是log信息的开头,可以为任意字符,一般为项目简称。输出的信息#[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached #instance of singleton bean 'MyAutoProxy'##############说明区域三结束##############输出的具体格式log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n #第二个输出管道是指明为文件,这里做了配置,产生日志的形式为每天一个文件log4j.appender.R=org.apache.log4j.DailyRollingFileAppender#文件路径及名称log4j.appender.R.File=D:/log/log.html#文件输出的布局log4j.appender.R.layout=org.apache.log4j.HTMLLayout#输出的具体格式log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n#以下为其他日志的级别#主要是为了解决所有应用使用同一个配置文件的问题#可以理解为log4j是jdk的一个插件,使用了log的java文件就得按照它的规则来产生日志.#log4j控制日志的输出并不是每一个类单独控制而是根据各个类package的名称来控制的.#比如如下这句,就是说明了所有的com.zsp开头的类的log级别为ERRORlog4j.logger.com.zsp=ERROR#比如如下这句,就是说明所有以org.hibernate开头的类的log级别为DEBUG,而不是hibernate的日志为DEBUG,比如你写了一个类叫org.hibernate.ttt.java使用了log,也会受到控制log4j.logger.org.hibernate=DEBUG

三. 使用哪些包呢

1. commons-logging.jar

2. log4j.jar

四. 程序中怎么使用啊

package com.zsp.oa.demo.log4j;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class Log4jDemo {private final Log log = LogFactory.getLog(this.getClass());public void sum(Object a,Object b){try {Integer ai = new Integer(a.toString());Integer bi = new Integer(b.toString());if(log.isDebugEnabled()){log.debug("操作成功并完成!");}} catch (Exception e) {if(log.isErrorEnabled()){log.error(e);}}}public void dev(int a,int b){log.info("hahahahah");try {int c = a/b;} catch (Exception e) {log.error(e);}}public static void main(String[] args) {Log4jDemo test = new Log4jDemo();test.dev(10, 0);}}



原创粉丝点击