log4j的使用

一. 理解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级别为ERROR
log4j.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);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值