[Java]log4j写SQL Server数据库日志的统一写法
2007-12-17 10:47
435 查看
[Java]log4j写SQL Server数据库日志的统一写法
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-7-19 | Java log4j sqlserver |
SQL Server 2000 Driver for JDBC Service Pack 3的下载
之前需要注意一点,sql server同样必须打上了sp3的补丁,然后才能与jdbc for sqlserver sp3连接。如果是"Error establishing socket"错误,很有可能是要在sql上打sp3补丁。下面是对运行log4j写MS SQL Server 2000 SP3日志的计算机的要求:
SQL Server 2000 Driver for JDBC Service Pack 3。您可以从以下位置下载并安装适应于SQLServer SP3的jdbc版本:
浏览
http://www.microsoft.com/downloads/details.aspx?familyid=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en
如果只是log4j写sql server,我们只需要下载这个包中的mssqlserver.tar
即可,不必安装jdbc:
http://www.microsoft.com/downloads/info.aspx?na=46&p=3&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f4%2f1%2fd%2f41d3e9c0-64d1-451e-947b-7a4cba273b2d%2fmssqlserver.tar
下载信息为:
l Download files belowQuick InfoVersion: 2.2.0040
l Date Published: 7/6/2004
l Language: English
l Download Size: 2883 KB*
得到jar包
从mssqlserver.tar解压缩出:l msbase.jar
l msutil.jar
l mssqlserver.jar
如果是做基于Tomcat的web应用,请放在tomcat的common\lib文件夹下。并让你的工程加入对它们的引用。
数据库日志表的准备
在数据库中准备一个这样的表,jws_log:生成脚本: |
CREATE TABLE [dbo].[jws_log] ( [nId] [int] IDENTITY (1, 1) NOT NULL , [dtDate] [datetime] NOT NULL , [sThread] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [sLevel] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL , [sLogger] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL , [sMessage] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NOT NULL , [sException] [varchar] (4000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[jws_log] WITH NOCHECK ADD CONSTRAINT [PK_jws_log] PRIMARY KEY CLUSTERED ( [nId] ) ON [PRIMARY] GO |
“iNotes.Default.Page_Load(c:\mailsource\default.aspx.cs:269)”;sMessage字段代表日志的内容。
工程中Log4J的配置
对工程的属性文件,需要如此配置:配置: |
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://192.168.1.111:1433;DatabaseName=ultra_domino log4j.appender.DATABASE.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver log4j.appender.DATABASE.user=sa log4j.appender.DATABASE.password= log4j.appender.DATABASE.sql=INSERT INTO wap_mail_jws_log VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m', '') log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout |
l %d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss},输出类似:2005-7-19 17:49:27,刚好适合插入SQLServer;
l %t 产生该日志事件的线程名;
l %p 日志的log_level,如DEBUG、WARN或者INFO;
l %c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;
l %m 日志的内容;
l %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如write2database.main(write2database.java:33);
l %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
工程中调用Log4J
工程中的写法:代码: |
import sun.jdbc.odbc.*; import java.sql.*; import org.apache.log4j.Category; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.jdbc.*; /* add for log4j: class Logger is the central class in the log4j package. we can do most logging operations by Logger except configuration. getLogger(...): retrieve a logger by name, if not then create for it. */ static Logger logger = Logger.getLogger ( write2database.class.getName () ) ; /* add for log4j: class BasicConfigurator can quickly configure the package. print the information to console. */ PropertyConfigurator.configure ( "log4j2database.properties" ) ; logger.info ( "just test" ) ; |
INSERT INTO jws_log VALUES ('2005-07-19 17:48:50', 'main', 'INFO', 'write2database.main(write2database.java:33)', 'just test', '')
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-7-19 | Java log4j sqlserver |
相关文章推荐
- [Java]log4j写SQL Server数据库日志的统一写法
- [Java]log4j写SQL Server数据库日志的统一写法
- log4j.properties(java日志文件)语法语句解析,什么意思,使用方法举例
- log4j学习笔记(一)——slf4j以及log4j引发的关于java日志的思考
- JAVA开发 资料收集之 log4j日志路径的设置
- Java日志框架使用技巧收集(slf4j、jcl、jul、log4j1、log4j2、logback)
- Java项目日志功能log4j
- JAVA中使用LOG4J记录日志(转)
- java日志--Log4j
- [java]如何在项目中用好log4J写项目日志
- Java中 log4j日志级别配置详解
- log4j日志管理系统简单使用说明 - open java project(转载)
- Java使用log4j进行日志管理
- JAVA - 优雅的记录日志(log4j实战篇)
- Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
- 为什么使用 SLF4J 而不是 Log4J 来做 Java 日志
- java Web应用配置log4j日志记录
- JavaWeb开发之添加日志框架-log4j
- Java 标准日志工具 Log4j 的使用(附源代码)
- 【Java进阶】利用APT优雅的实现统一日志格式