Log4j 日志到數(shù)據(jù)庫(kù)

2018-02-28 13:41 更新

Log4j教程 - Log4j日志到數(shù)據(jù)庫(kù)


我們可以使用log4j API通過(guò)使用org.apache.log4j.jdbc.JDBCAppender對(duì)象將信息記錄到數(shù)據(jù)庫(kù)中。

下表列出了JDBCAppender的配置屬性。

屬性 描述
bufferSize 設(shè)置緩沖區(qū)大小。默認(rèn)大小為1。
driver JDBC驅(qū)動(dòng)程序類。默認(rèn)為sun.jdbc.odbc.JdbcOdbcDriver。
layout 設(shè)置布局。默認(rèn)是org.apache.log4j.PatternLayout。
password 設(shè)置數(shù)據(jù)庫(kù)密碼。
sql 指定用于每個(gè)日志記錄請(qǐng)求的SQL語(yǔ)句。
URL 設(shè)置JDBC URL
user 設(shè)置數(shù)據(jù)庫(kù)用戶名

例子

首先,創(chuàng)建一個(gè)表來(lái)存儲(chǔ)日志信息。

CREATE TABLE LOGS
   (USER_ID VARCHAR(20) NOT NULL,
    DATED   DATE NOT NULL,
    LOGGER  VARCHAR(50) NOT NULL,
    LEVEL   VARCHAR(10) NOT NULL,
    MESSAGE VARCHAR(1000) NOT NULL
   );

然后,為JDBCAppender創(chuàng)建配置文件log4j.properties,該文件控制如何連接到數(shù)據(jù)庫(kù)以及如何將日志消息存儲(chǔ)到LOGS表。

# Define the root logger with appender file
log4j.rootLogger = DEBUG, DB

# Define the DB appender
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

# Set JDBC URL
log4j.appender.DB.URL=jdbc:mysql://localhost/Your_Database_Name

# Set Database Driver
log4j.appender.DB.driver=com.mysql.jdbc.Driver

# Set database user name and password
log4j.appender.DB.user=your_user_name
log4j.appender.DB.password=your_password

# Set the SQL statement to be executed.
log4j.appender.DB.sql=INSERT INTO LOGS 
                      VALUES("%x","%d","%C","%p","%m")

# Define the layout for file appender
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

以下代碼顯示如何將信息記錄到數(shù)據(jù)庫(kù)中。

import org.apache.log4j.Logger;
import java.sql.*;
import java.io.*;
import java.util.*;

public class Main{
  static Logger log = Logger.getLogger(Main.class.getName());

  public static void main(String[] args)
                throws IOException,SQLException{

     log.debug("Debug");
     log.info("Info");
  }
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)