`
googleyufei
  • 浏览: 4391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

[集成]log4j配置指南之一

阅读更多

 

 

// 2011年4月14日 星期四 23时07分55秒

 

关键字:log4j, 配置详解

 

Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等功能。 

 

Console Appender 

 

Java代码  

 

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.Threshold=DEBUG  
log4j.appender.CONSOLE.Target=System.out  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n 

 

 

 

File Appender 

 

Java代码  

log4j.appender.FILE=org.apache.log4j.FileAppender  
#此处的文件可以写绝对路径, 也可以写相对于{CALATINE_HOME}/bin的路径
log4j.appender.FILE.File=file.log  
log4j.appender.FILE.Append=false  
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

 

# Use this layout for LogFactor 5 analysis  

 

 

Rolling File 

 

Java代码  

 

log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender  
log4j.appender.ROLLING_FILE.Threshold=ERROR  
log4j.appender.ROLLING_FILE.File=rolling.log  
log4j.appender.ROLLING_FILE.Append=true  
log4j.appender.ROLLING_FILE.MaxFileSize=10KB  
log4j.appender.ROLLING_FILE.MaxBackupIndex=1  
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
 

 

 

Socket Appender 

 

Java代码  

 

log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender  
log4j.appender.SOCKET.RemoteHost=localhost  
log4j.appender.SOCKET.Port=5001  
log4j.appender.SOCKET.LocationInfo=true  
# Set up for Log Facter 5  
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout  
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
 

 

 

Log Factor 5 Appender 

 

Java代码  

 

log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender  
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000  
 

 

SMTP Appender 

 

Java代码  

 

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender  
log4j.appender.MAIL.Threshold=FATAL  
log4j.appender.MAIL.BufferSize=10  
log4j.appender.MAIL.From=chenyl@hollycrm.com  
log4j.appender.MAIL.SMTPHost=mail.hollycrm.com  
log4j.appender.MAIL.Subject=Log4J Message  
log4j.appender.MAIL.To=chenyl@hollycrm.com  
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout  
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
 

 

 

# JDBC Appender 

 

Java代码  

 

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender  
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test  
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver  
log4j.appender.DATABASE.user=root  
log4j.appender.DATABASE.password=  
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')  
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout  
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
 

 

#自定义Appender 

 

Java代码  

 

 

log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender  
  
log4j.appender.im.host = mail.cybercorlin.net  
log4j.appender.im.username = username  
log4j.appender.im.password = password  
log4j.appender.im.recipient = corlin@cybercorlin.net  
  
log4j.appender.im.layout=org.apache.log4j.PatternLayout  
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
 

# 配置logger

 

Java代码  

 

 

log4j.rootLogger=DEBUG,CONSOLE,A1,im  
log4j.com.test=debug,console,A1
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE    
log4j.addivity.org.apache=true  
 

 

# Layout ConversionPattern 输出参数

 

都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

%c     输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的范围  如:"org.apache.xyz.SomeClass", %C{2}将输出xyz.SomeClass

%d     输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}

%l     输出日志事件发生位置,包括类目名、发生线程,在代码中的行数

%n     换行符

%m     输出代码指定信息,如info(“message”),输出message

%p     输出优先级,即 FATAL ,ERROR 等

%r     输出从启动到显示该log信息所耗费的毫秒数

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

 

# 针对如何生成以时间为文件名的日志

 

 

log4j.appender.dailyFile.layout.ConversionPattern=%d{M/d/yyyy HH:mm} %c %p - %m%n
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
 

# 上面方法还是有些问题

 

log4j暂时没有提供这种功能,因为这只是记录日志,不需要的特殊的文件名吧。

也可以通过该源码或扩展源码的方式修改。

改源码:Log4j的org.apache.log4j.DailyRollingFileAppender源码223行

scheduledFilename = fileName+sdf.format(new Date(file.lastModified()));

即随便自己弄什么名称。看到这里你因该清除为什么不可配置了吧

扩展源码:自己写个appender类,继承org.apache.log4j.DailyRollingFileAppender覆盖要修改的方法,简单拷贝过来,修改下就行了。然后配置的时候别忘记了写上自己的appender类全名。


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics