1.2 創(chuàng)建Log4j2.xml配置文件
需要?jiǎng)?chuàng)建數(shù)據(jù)表、數(shù)據(jù)行的對(duì)應(yīng)關(guān)系
[html] view plain copy 
<?xml version="1.0"encoding="UTF-8"?> <!-- 不打印log4j內(nèi)部日志,配置文件刷新頻率為30秒 --> <Configuration status="off"monitorInterval="30"> <Appenders> <JDBC name="databaseAppender" tableName="ibs_log"> <ConnectionFactory class="com.*.*.ConnectionFactory"method="getDatabaseConnection" /> <Column name="log_date" isEventTimestamp="true"/> <Column name="log_file" pattern="%file" /> <Column name="log_line" pattern="%line" /> <Column name="log_thread" pattern="%thread" /> <Column name="log_level" pattern="%level" /> <Column name="log_message" pattern="%message"/> </JDBC> </Appenders> <Loggers> <!-- 打印等級(jí):off、fatal、error、warn、info、debug、trace、all --> <Logger name="項(xiàng)目包名(com.*.*)" level="debug"> <appender-ref ref="databaseAppender"/> </Logger> <Root level="off"></Root> </Loggers> </Configuration> ![]()
1.3 創(chuàng)建數(shù)據(jù)庫(kù)連接類ConnectionFactory
需要修改下面代碼中用戶名、密碼、數(shù)據(jù)庫(kù)名稱為你使用的數(shù)據(jù)庫(kù)對(duì)用的用戶名密碼以及名稱:
【ConnectionFactory.java】
[java] view plain copy 
package com.centerm.util; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; importorg.apache.commons.dbcp.DriverManagerConnectionFactory; importorg.apache.commons.dbcp.PoolableConnection; import org.apache.commons.dbcp.PoolableConnectionFactory; importorg.apache.commons.dbcp.PoolingDataSource; importorg.apache.commons.pool.impl.GenericObjectPool; public class ConnectionFactory { privatestatic interface Singleton { final ConnectionFactory INSTANCE = new ConnectionFactory(); } private final DataSource dataSource; private ConnectionFactory() { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(0); } Properties properties = new Properties(); properties.setProperty("user", "用戶名"); properties.setProperty("passWord", "密碼"); //or get properties from some configuration file GenericObjectPool<PoolableConnection>pool = new GenericObjectPool<PoolableConnection>(); DriverManagerConnectionFactory connectionFactory = newDriverManagerConnectionFactory( "jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名稱",properties ); new PoolableConnectionFactory( connectionFactory, pool, null,"SELECT 1", 3, false, false, Connection.TRANSACTION_READ_COMMITTED ); this.dataSource = new PoolingDataSource(pool); } public static Connection getDatabaseConnection() throws SQLException { return Singleton.INSTANCE.dataSource.getConnection(); } } ![]()
至此就可以運(yùn)行項(xiàng)目測(cè)試了
1.4 特別注意
由于項(xiàng)目啟動(dòng)時(shí)Log4j2是最先加載的內(nèi)容,所以有可能出現(xiàn)ConnectionFactory這個(gè)類啟動(dòng)報(bào)錯(cuò),所以需要在官網(wǎng)提供實(shí)例的基礎(chǔ)上添加代碼(上面類中已經(jīng)添加):

2 Log4j2記錄日志到MongoDB
安裝運(yùn)行MongoDB:http://www.runoob.com/mongodb/mongodb-window-install.html
MongoDB驅(qū)動(dòng)下載:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
Java MongoDB API學(xué)習(xí):http://blog.csdn.net/ererfei/article/details/50857103
2.1 創(chuàng)建數(shù)據(jù)庫(kù)
運(yùn)行MongoDB客戶端mongo-cli.exe,使用命令”usetest”創(chuàng)建數(shù)據(jù)庫(kù)test,創(chuàng)建該數(shù)據(jù)庫(kù)的用戶[root:password],不需要手動(dòng)創(chuàng)建collection。
2.2 創(chuàng)建Log4j2.xml配置文件
[html] view plain copy 
<?xml version="1.0"encoding="UTF-8"?> <!--不打印log4j內(nèi)部日志,配置文件刷新頻率為30秒 --> <Configuration status="off"monitorInterval="30"> <Appenders> <NoSql name="databaseAppender"> <MongoDb databaseName="test"collectionName="logData" server="127.0.0.1"port="27017" userName="root"password="password"/> </NoSql> </Appenders> <Loggers> <!-- 打印等級(jí):off、fatal、error、warn、info、debug、trace、all --> <Logger name="com.*.*"level="debug"> <appender-ref ref="databaseAppender"/> </Logger> <Root level="off"></Root> </Loggers> </Configuration> ![]()
至此就可以運(yùn)行項(xiàng)目測(cè)試了