Log4j 的这一功能不错比较实用, 近段时间需要用到这个, 在此之前一直没怎么用过. 网上搜索一下, 还不少这样的文章, 随后又公司前段时间对开发人员做的培训资料翻个遍找到了. 现在将这些记录一下. 以备不时之需啊!
1. 创建日志表
CREATE TABLE [dbo].[LogInfo] (
[GUID] [int] IDENTITY (1, 1) NOT NULL , -- 流水号
[DATE] [datetime]NULL , --时间
[THREAD] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL , --当前线程
[LEVEL] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,--当前级别
[CLASS] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,--当前java程序/方法
[MESSAGES] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ---当前输出信息
)
2. 配置log4j.properties
log4j.rootLogger=DEBUG,CONSOLE,DATABASE
log4j.addivity.org.apache=true
# JDBC Appender
log4j.appender.DATABASE.Threshold=INFO
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.DATABASE.BufferSize=10
log4j.appender.DATABASE.URL=jdbc:microsoft:sqlserver://localhost;DatabaseName=LogInfoTest
log4j.appender.DATABASE.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
log4j.appender.DATABASE.user= sa
log4j.appender.DATABASE.password= 1234
log4j.appender.DATABASE.sql=INSERT INTO YOU_LOG_TABLE VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
%d %t %p %l %m %n 说明:
1) %d输出日志时间点的日期或时间,
2) %t 产生该日志事件的线程名;
3) %p 日志的log_level,如DEBUG、WARN或者INFO;
4) %c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;
5) %m 日志的内容;
6) %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。 <script language=javascript src="/js/google_ads_300_250.js"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></script>
7) %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
程序代码: 略(相信自己的能力, 这些应该可以写的出来)