日期:2014-05-16  浏览次数:20500 次

转载【log4j向数据库中写日志及发送邮件】

原文地址http://blog.163.com/sejin@126/blog/static/8275045520126142559274/

?

log4j.rootLogger=DEBUG,DB,DB2,CONSOLE,MAIL
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C - %m
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.Threshold=INFO
log4j.appender.DB.bufferSize =1
log4j.appender.DB.URL=jdbc:oracle:thin:@192.168.1.151:1521:ora11
log4j.appender.DB.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DB.user=t**
log4j.appender.DB.password=**
log4j.appender.DB.sql=INSERT INTO LOG_4j (ClassName, LogValue) VALUES ('%C','%m')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
log4j.appender.DB2=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB2.Threshold=error
log4j.appender.DB2.bufferSize =1
log4j.appender.DB2.URL=jdbc:oracle:thin:@192.168.1.151:1521:ora11
log4j.appender.DB2.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DB2.user=**
log4j.appender.DB2.password=**
log4j.appender.DB2.sql=INSERT INTO LOG_4j2(ClassName, LogValue) VALUES ('%C','%m')
log4j.appender.DB2.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.To=**@163.com
log4j.appender.MAIL.From=**@163.com
log4j.appender.MAIL.SMTPUsername=**
log4j.appender.MAIL.SMTPPassword=**
log4j.appender.MAIL.Subject=ErrorLog
log4j.appender.MAIL.SMTPHost=smtp.163.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=%C - %m
以下为转载:

这是我自己使用的一个log4j的配置文件,基本够用了,而且还有说明,如果不够用,还可以自己添加。

#DEBUG代表错误级别其中的一种,如果后面不单独指定级别的话,将把高于DEBUG级别的日志输出到Console、File这两个参数决定的输出地方
log4j.rootLogger=DEBUG,console,file

#日志级别
#包括以下六种:FATAL、ERROR、WARN、INFO、DEBUG、TRACE,其中FATAL错误级别最高,TRACE错误级别最低
#设置全局日志级别
log4j.appender.Threshold=DEBUG
#单个日志类别的级别
log4j.appender.file.Threshold=INFO

#使用控制台输出日志
log4j.appender.console=org.apache.log4j.ConsoleAppender

#使用日志文件输出,文件容量超过指定大小则产生一个新的日志文件
log4j.appender.file=org.apache.log4j.RollingFileAppender

#设置日志文件存放位置和名称
log4j.appender.file.File=logs/log.txt

#设置每个日志文件大小
log4j.appender.file.MaxFileSize=1024KB

#设置保存备份文件个数
log4j.appender.file.MaxBackupIndex=5

#设置日志输出格式
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm} %t %p- %m%n

#Log4j提供的layout有以下几种:
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

#在使用org.apache.log4j.PatternLayout(可以灵活地指定布局模式)时可以根据log4j.appender.file.layout.ConversionPattern来指定自定义输出格式
#Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:m//m:ss,SSS},输出类似:2002年10月18日 22:10:28,921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

下面是从网上搜罗到的相关说明,也可以参考参考:

Log4J日志工具的配置:

在应用程序中的配置如下:
在项目的Src根目录下复制log4j.properties和commons-loggingproperties.properties两个文件
或是创建,再将Log4j的Jar包放入WebRoot/Web-INF/Lib下即可

资源文件log4j.properties文件内容如下:
##LOGGERS##
log4j.rootLogger=INFO,console,file
##APPENDERS##
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:\log.tx