日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

[Java]log4j寫SQL Server數據庫日志的統一寫法

系統 2182 0

[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

其中, sLevel 字段代表日志的級別; sLogger 字段代表日志是由哪一個類或者文件產生的,如

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

? ?????

下面我們對“ %d %t %p %l %m %n ”一一講解:

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" ) ;

?

?????? 運行起來,你就會看到有這樣的 sql 語句被執行了:

?????? 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

?



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=429289


[Java]log4j寫SQL Server數據庫日志的統一寫法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 游戏| 南皮县| 阜南县| 西乡县| 西贡区| 镇远县| 永嘉县| 屯门区| 江津市| 论坛| 台南市| 西城区| 萝北县| 邵东县| 光泽县| 嘉祥县| 临高县| 临安市| 桓台县| 安达市| 桐柏县| 阜新市| 昆明市| 南澳县| 嵊泗县| 海晏县| 呼图壁县| 图片| 南岸区| 淮北市| 阳新县| 临泽县| 岱山县| 乡城县| 辽源市| 化州市| 丰原市| 沛县| 白玉县| 湖口县| 临桂县|