blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks

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

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

          下面是對運行log4jMS 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', '')

          posted on 2007-02-14 15:29 渠上月 閱讀(993) 評論(0)  編輯  收藏 所屬分類: java tips
          主站蜘蛛池模板: 庆云县| 轮台县| 长宁县| 浪卡子县| 广饶县| 定安县| 二连浩特市| 秦安县| 牟定县| 游戏| 波密县| 马边| 紫云| 汶上县| 阳信县| 松阳县| 安溪县| 天津市| 包头市| 理塘县| 巩义市| 宁蒗| 闵行区| 志丹县| 巴林右旗| 龙川县| 滦南县| 石首市| 丹寨县| 宽甸| 高青县| 莆田市| 南溪县| 麻江县| 武安市| 岐山县| 西乡县| 大悟县| 唐河县| 郎溪县| 罗城|