java之自定义日志类

1 java有日志功能。log4j。需要将log4j.properties放在src下。
正常的java日志:
log4j.rootLogger=info,CONSOLE//根日志的级别,以及输出方式
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=info
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t][%-5p]: %c - %m%n




2 java中支持自定义日志类。就是用一个类来做日志。需要在log4j.properties中进行配置。
如:log4j.logger.com.log4j.LogTest=info,logTest
#log4j.logger.test1234=info,logTest
log4j.additivity.com.log4j.LogTest=false
#log4j.additivity.test1234=false
log4j.appender.logTest=org.apache.log4j.RollingFileAppender
log4j.appender.logTest.MaxFileSize=20MB
log4j.appender.logTest.MaxBackupIndex=100
log4j.appender.logTest.layout=org.apache.log4j.PatternLayout
log4j.appender.logTest.layout.ConversionPattern=%d [%t][%-5p]:%c -%m%n
log4j.appender.logTest.Threshold=info
log4j.appender.logTest.append=true
log4j.appender.logTest.BufferedIO=false
log4j.appender.logTest.BufferedSize=0
log4j.appender.logTest.File=d:/log/log-test20150411/logTest.log


说明:
log4j.logger.com.log4j.LogTest表明用com.log4j包下的LogTest来做自定义日志类。表示子logger继承根logger的
log4j.logger.com.log4j.LogTest=info,logTest 表明com.log4j包下的LogTest日志类是用logTest的日志输出方式
log4j.additivity.com.log4j.LogTest=false表明日志只输出在com.log4j.LogTest配置的日志中,别的地方不输出(默认会输出在log4j自带的位置中)
log4j.appender.logTest=org.apache.log4j.RollingFileAppender表明滚动文件的方式。如果超出文件大小会生成一个新的日志文件
log4j.appender.logTest.MaxFileSize=20MB表明日志文件的最大是多大
log4j.appender.logTest.MaxBackupIndex=100表明最多备份的索引
log4j.appender.logTest.append=true表明是否末尾追加的方式
log4j.appender.logTest.File=d:/log/log-test20150411/logTest.log表明日志文件的位置


3 java自定义的日志类。需要通过Logger log=Logger.getLogger(类名.class) 意思是得到和类名的路径一样的日志。
如:类名的全路径为:com.log4j.LogTest
log4j.properties中配置:log4j.logger.com.log4j.LogTest=info,logTest


在com.log4j.LogTest中定义
private static Logger log=Logger.getLogger(LogTest.class);//得到com.log4j.LogTest的自定义日志对象配置


得到了log对象后。就可以用log的方法。info方法、debug方法、error方法。


4 如果在类中通过Logger.getLogger(类名)。该类不是自定义日志类,自是普通类时,这是得到的log对象时用rootLogger配置的日志输出方式。
如:public static Logger logE=Logger.getLogger(ExampleAjaxAction.class);
ExampleAjaxAction类不是自定义日志类。只是普通的类。这是得到的logE对象只是用rootLogger配置的日志输出方法。


记住:通过Logger.getLogger(类名.class) 如果为自定义日志类,则是使用自定义日志类。如果是普通的类(在Log4j.properties中找不到配置的)则用rootLogger配置的日志输出方式




完整的例子:
log4j.rootLogger=info,CONSOLE
#log4j.addivity.org.apache=true
#####CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=info
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t][%-5p]: %c - %m%n




log4j.logger.com.log4j.LogTest=info,logTest
#log4j.logger.test1234=info,logTest
log4j.additivity.com.log4j.LogTest=false
#log4j.additivity.test1234=false
log4j.appender.logTest=org.apache.log4j.RollingFileAppender
log4j.appender.logTest.MaxFileSize=20MB
log4j.appender.logTest.MaxBackupIndex=100
log4j.appender.logTest.layout=org.apache.log4j.PatternLayout
log4j.appender.logTest.layout.ConversionPattern=%d [%t][%-5p]:%c -%m%n
log4j.appender.logTest.Threshold=info
log4j.appender.logTest.append=true
log4j.appender.logTest.BufferedIO=false
log4j.appender.logTest.BufferedSize=0
log4j.appender.logTest.File=d:/log/log-test20150411/logTest.log




#log4j.logger.com.log4j.LogTest=info,ALARM_LOG
#log4j.additivity.com.log4j.LogTest=false
#log4j.appender.ALARM_LOG=org.apache.log4j.RollingFileAppender
#log4j.appender.ALARM_LOG.MaxFileSize=20MB
#log4j.appender.ALARM_LOG.MaxBackupIndex=100
#log4j.appender.ALARM_LOG.layout=org.apache.log4j.PatternLayout
#log4j.appender.ALARM_LOG.layout.ConversionPattern=[%-4p][%t] %d{yyyy-MM-dd HH:mm:ss,SSS}: %c - %m%n
#log4j.appender.ALARM_LOG.Threshold=INFO
#log4j.appender.ALARM_LOG.append=true
#log4j.appender.ALARM_LOG.BufferedIO=false
#log4j.appender.ALARM_LOG.BufferSize=0
#log4j.appender.ALARM_LOG.File=d\:/log-test20150411/test_LOG.log








#log4j.rootLogger=info,info,stdout


#log4j.logger.stdout=stdout
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}[%t][%-5p]: %c - %m%n






自定义日志类:
package com.log4j;


import org.apache.log4j.Logger;






public class LogTest {


//private static Logger log=Logger.getLogger("test1234");//LogFactory.getLog(LogTest.class);
private static Logger log=Logger.getLogger(LogTest.class);
public static void INFO(String value){
log.info(value);
}

public static void DEBUG(String value){
log.debug(value);
}

public static void ERROR(String value){
log.error(value);
}

}




在某一个类中使用自定义日志类的方法:
public String ajax(){
map.put("name","xcl");
map.put("password","123456");
System.out.println("设置了map");
LogTest.INFO("info记录了日志 设置了map");
LogTest.DEBUG("debug记录了日志 设置了map");
LogTest.ERROR("error记录了日志 设置了map");
return "success";//struts2的返回的json的技术,函数返回值一定要是success
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值