### set log levels ### 

 log4j.rootLogger = debug ,  stdout 



 #################################### 输出到控制台 ############################################ 

 log4j.appender.stdout = org.apache.log4j.ConsoleAppender 

 log4j.appender.stdout.Target = System.out 

 #定义com.edu包下面的所有类等级为DEBUG 

 log4j.logger.com.edu =DEBUG 

 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 

 log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm ss} %5p  %c:%L - %m%n 



 #################################### 输出到日志文件 ########################################## 

 log4j.appender.D = org.apache.log4j.FileAppender 

 log4j.appender.D.File = logs/log.log 

 log4j.appender.D.Append = true 

 log4j.appender.D.Threshold = DEBUG  

 ## 输出DEBUG级别以上的日志 

 log4j.appender.D.layout = org.apache.log4j.PatternLayout 

 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %c-%t:%L ] - [ %p ]  %m%n 



 #################################### 保存异常信息到单独文件 ################################## 

 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender 

 log4j.appender.E.File = logs/error.log  

 ## 异常日志文件名 

 log4j.appender.E.Append = true 

 log4j.appender.E.Threshold = ERROR  

 ## 只输出ERROR级别以上的日志!!! 

 log4j.appender.E.layout = org.apache.log4j.PatternLayout 

 log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n 





 ############################################################################################ 

 #log4j.logger.com. neusoft =DEBUG 

 #指定com.neusoft包下的所有类的等级为DEBUG。 

 ############################################################################################ 





 #####################################输出级别################################################# 

 # FATAL       0   

 # ERROR      3   

 # WARN       4   

 # INFO         6   

 # DEBUG      7  

 ############################################################################################## 



 ###################################Appender输出目的地########################################## 

 # org.apache.log4j.ConsoleAppender(控制台), 

 # org.apache.log4j.FileAppender(文件), 

 # org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), 

 # org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 

 #         log4j.appender.mylog.MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。 

 #         log4j.appender.mylog.MaxBackupIndex=2:指定可以产生的滚动文件的最大数。 

 # org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 

 ############################################################################################## 



 ###################################Log4j提供的layout有以下几种################################# 

 # org.apache.log4j.HTMLLayout(以HTML表格形式布局), 

 # org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 

 # org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 

 # org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 

 ############################################################################################# 



 #####################################日志输出格式############################################# 

 #-X号: X信息输出时左对齐; 

 # %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL, 

 # %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 

 # %r: 输出自应用启动到输出该log信息耗费的毫秒数 

 # %c: 输出日志信息所属的类目,通常就是所在类的全名 

 # %t: 输出产生该日志事件的线程名 

 # %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10) 

 # %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 

 # %%: 输出一个"%"字符 

 # %F: 输出日志消息产生时所在的文件名称 

 # %L: 输出代码中的行号 

 # %m: 输出代码中指定的消息,产生的日志具体信息 

 # %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行 

 # 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 

 # 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 

 # 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。 

 # 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 

 # 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。 

 ############################################################################################# 



 ##########################################使用方法########################################### 

 # public class Log4jTest { 

 # 
public static void main(String[] args) { 

 # 
PropertyConfigurator.configure("src/log4j.properties"); 

 # 
 Logger log = Logger.getLogger(Log4jTest.class); 

 # 
 log.fatal("fatal message!"); 

 # 
 log.error("errors message!"); 

 # 
 log.warn("this is my warn message!"); 

 # 
 log.info("this is a info message!"); 

 # 
 log.debug("this is a debug message!"); 

 # 
 } 

 # } 

 #############################################################################################