我們可以使用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"); } }
更多建議: