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
}
正常的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
}