Log4j的應用執行個體

來源:互聯網
上載者:User
在Log4J使用筆記中沒有怎麼寫執行個體,那麼在這篇中我將Log4j的一個完整應用執行個體寫出。
在Log4J使用筆記中我們已經知道同一個日誌資訊可以同時輸出到多個輸出目的地。那麼在下面的例子中我將示範將日誌資訊同時輸出到控制台,檔案和資料庫中。首先建立一張表,如下:log4j.sql
create table log4j
(
    logId int not null auto_increment,--流水號
    createDate varchar(45) default null,--日誌產生時間
    thread varchar(45) default null,--當前線程
    level varchar(45) default null,--當前日誌的層級
    class varchar(45) default null,--組建記錄檔的類
    message varchar(245) default null,--日誌具體資訊
    
    primary key(logId)
)

編寫設定檔myLog4j.properties

#定義3個輸出端
log4j.rootCategory=INFO,A1,A2,A3

#定義A1輸出到控制器
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#定義A1的配置模式為PaternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 定義A1的輸出格式
log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n

#定義A2輸出到檔案
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#定義A2輸出到哪個檔案
log4j.appender.A2.File=./Sample.log
#定義A2輸出檔案的最大長度
log4j.appender.A2.MaxFileSize = 1KB
#定義A2的備份檔案數
log4j.appender.A2.MaxBackupIndex = 3
#定義A2的配置模式為PatternLayout
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#定義A2的輸出模式
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n

#定義A3輸出到資料庫
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://localhost:3306/study
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=root
#定義A3的布局和執行的SQL語句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')

最後測試程式如下:

    public static void sample()
    {
        Logger logger = Logger.getLogger(Log4jTest.class);
        
        PropertyConfigurator.configure("myLog4j.properties");
        logger.debug("Here is DEBUG messgae");
        logger.info("Here is INFO message");
        logger.warn("Here is WARN message");
        logger.error("Here is ERROR message");
        logger.fatal("Here is FATAL message");
    }

這樣當我們運行該程式的時候會同時將上述日誌資訊轉入到三個地方:
控制台:

資料庫:

檔案:

我們已經看到出現Sample.log檔案,該檔案我們在配置中指定,當然你也可以修改其它地方,另外Log4j的設定檔也放在項目根目錄下。
同時當我們多運行幾次該程式時,Sample.log超過1KB時就會將該檔案自動改名,同時再將日誌記錄到新的Sample.log檔案中,如下:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.