亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[Java]log4j寫(xiě)SQL Server數(shù)據(jù)庫(kù)日志的統(tǒng)一寫(xiě)法

系統(tǒng) 2391 0

[Java]log4j 寫(xiě) SQL Server 數(shù)據(jù)庫(kù)日志的統(tǒng)一寫(xiě)法

編寫(xiě)者

日期

關(guān)鍵詞

鄭昀 @ultrapower

2005-7-19

Java log4j sqlserver

?

SQL Server 2000 Driver for JDBC Service Pack 3 的下載

之前需要注意一點(diǎn), sql server 同樣必須打上了 sp3 的補(bǔ)丁,然后才能與 jdbc for sqlserver sp3 連接。如果是 "Error establishing socket" 錯(cuò)誤 , 很有可能是要在 sql 上打 sp3 補(bǔ)丁。

下面是對(duì)運(yùn)行 log4j 寫(xiě) MS SQL Server 2000 SP3 日志的計(jì)算機(jī)的要求:

  • ? SQL Server 2000 Driver for JDBC Service Pack 3 您可以從以下位置下載并安裝適應(yīng)于 SQLServer SP3 jdbc 版本:
    瀏覽

http://www.microsoft.com/downloads/details.aspx?familyid=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en

如果只是 log4j 寫(xiě) sql server ,我們只需要下載這個(gè)包中的 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 應(yīng)用,請(qǐng)放在 tomcat common\lib 文件夾下。并讓你的工程加入對(duì)它們的引用。

數(shù)據(jù)庫(kù)日志表的準(zhǔn)備

在數(shù)據(jù)庫(kù)中準(zhǔn)備一個(gè)這樣的表, 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 字段代表日志的級(jí)別; sLogger 字段代表日志是由哪一個(gè)類(lèi)或者文件產(chǎn)生的,如

iNotes.Default.Page_Load(c:\mailsource\default.aspx.cs:269) ”; sMessage 字段代表日志的內(nèi)容。

工程中 Log4J 的配置

對(duì)工程的屬性文件,需要如此配置:

? 配置:

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

? ?????

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

l ???????? %d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為 ISO8601 ,也可以在其后指定格式,比如: %d{yyyy-MM-dd HH:mm:ss} ,輸出類(lèi)似: 2005-7-19 17:49:27 ,剛好適合插入 SQLServer

l ???????? %t ? 產(chǎn)生該日志事件的線程名

l ???????? %p 日志的 log_level ,如 DEBUG WARN 或者 INFO

l ???????? %c ? 輸出所屬的類(lèi)目,通常就是所在類(lèi)的全名 ,如“ iNotes.Default ”;

l ???????? %m 日志的內(nèi)容;

l ???????? %l ? 輸出日志事件的發(fā)生位置,包括類(lèi)目名、發(fā)生的線程,以及在代碼中的行數(shù)。如 write2database.main(write2database.java:33)

l ???????? %n ? 輸出一個(gè)回車(chē)換行符, Windows 平臺(tái)為“ \r\n ”, Unix 平臺(tái)為“ \n

工程中調(diào)用 Log4J

工程中的寫(xiě)法:

? 代碼:

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

?

?????? 運(yùn)行起來(lái),你就會(huì)看到有這樣的 sql 語(yǔ)句被執(zhí)行了:

?????? INSERT INTO jws_log ? VALUES ('2005-07-19 17:48:50', 'main', 'INFO', 'write2database.main(write2database.java:33)', 'just test', '')

?

編寫(xiě)者

日期

關(guān)鍵詞

鄭昀 @ultrapower

2005-7-19

Java log4j sqlserver

?



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


[Java]log4j寫(xiě)SQL Server數(shù)據(jù)庫(kù)日志的統(tǒng)一寫(xiě)法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久精品在这里 | 欧美成人禁片在线www | 欧美jizzhd极品欧美 | 男人的天堂久久精品激情 | 开心久久婷婷综合中文字幕 | 午夜免费福利视频 | 久久九九国产 | 色偷偷成人网免费视频男人的天堂 | 久久九色 | 狠狠色噜噜狠狠狠狠色吗综合 | 99看视频| 女人18一级特级毛片免费看 | 国产尤物精品视频 | 国产91在线精品福利 | 奇米第八色 | 亚洲精品一区二区三区婷婷 | 亚洲精品亚洲人成在线 | 日本一级高清不卡视频在线 | 日本囗交做爰视频欧美 | 日韩毛片欧美一级国产毛片 | 亚洲va天堂va国产va久 | 日本中文字幕在线观看 | 奇米影视999 | 四虎影视2022入口网址 | aⅴ一区二区三区 | 国产香蕉免费精品视频 | 深夜在线网址 | 欧美拍拍视频 | 亚洲人成依人成综合网 | 久久精品久久精品 | 狠狠色丁香婷婷综合最新地址 | 在线 | 一区二区三区四区 | 久久福利 | 日本一级毛片无遮挡 | 精产网红自拍在线 | 午夜剧| 国产精品久久久久999 | 嫩草嫩草55av | 97色伦图片97色伦图影院久久 | 欧美社区 | 99国产精品高清一区二区二区 |