小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

[java]log4j寫sql server數(shù)據(jù)庫日志的統(tǒng)一寫法

 duduwolf 2005-07-20
 

[Java]log4jSQL Server數(shù)據(jù)庫日志的統(tǒng)一寫法

編寫者

日期

關(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)行log4jMS SQL Server 2000 SP3日志的計(jì)算機(jī)的要求:

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

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

如果只是log4jsql 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

如果是做基于Tomcatweb應(yīng)用,請(qǐng)放在tomcatcommon\lib文件夾下。并讓你的工程加入對(duì)它們的引用。

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

在數(shù)據(jù)庫中準(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è)類或者文件產(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},輸出類似:2005-7-19 17:49:27,剛好適合插入SQLServer

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

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

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

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

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

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

工程中調(diào)用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" ) ;

 

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

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

 

編寫者

日期

關(guān)鍵詞

鄭昀@ultrapower

2005-7-19

Java log4j sqlserver

 

 

[Java]log4jSQL Server數(shù)據(jù)庫日志的統(tǒng)一寫法

編寫者

日期

關(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)行log4jMS SQL Server 2000 SP3日志的計(jì)算機(jī)的要求:

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

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

如果只是log4jsql 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

如果是做基于Tomcatweb應(yīng)用,請(qǐng)放在tomcatcommon\lib文件夾下。并讓你的工程加入對(duì)它們的引用。

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

在數(shù)據(jù)庫中準(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è)類或者文件產(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},輸出類似:2005-7-19 17:49:27,剛好適合插入SQLServer;

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

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

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

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

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

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

工程中調(diào)用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" ) ;

 

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

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

 

編寫者

日期

關(guān)鍵詞

鄭昀@ultrapower

2005-7-19

Java log4j sqlserver

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多