Log4j教程 - Log4j日志到数据库
我们可以使用log4j API通过使用org.apache.log4j.jdbc.JDBCAppender对象将信息记录到数据库中。
下表列出了JDBCAppender的配置属性。
属性 | 描述 |
---|---|
bufferSize | 设置缓冲区大小。默认大小为1。 |
driver | JDBC驱动程序类。默认为sun.jdbc.odbc.JdbcOdbcDriver。 |
layout | 设置布局。默认是org.apache.log4j.PatternLayout。 |
password | 设置数据库密码。 |
sql | 指定用于每个日志记录请求的SQL语句。 |
URL | 设置JDBC URL |
user | 设置数据库用户名 |
例子
首先,创建一个表来存储日志信息。
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创建配置文件log4j.properties,该文件控制如何连接到数据库以及如何将日志消息存储到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
以下代码显示如何将信息记录到数据库中。
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");} }