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

2018-02-28 13:41 更新

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


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

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

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

例子

首先,創(chuàng)建一個表來存儲日志信息。

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ù)庫以及如何將日志消息存儲到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ù)庫中。

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)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號