以log4j2 v2.7版本为例,低版本可能不支持。
参见:
http://logging.apache.org/log4j/2.x/manual/appenders.html#NoSQLAppender
https://logging.apache.org/log4j/2.x/runtime-dependencies.html
https://logging.apache.org/log4j/2.x/log4j-nosql/index.html
http://www.cnblogs.com/autfish/p/5557568.html
maven:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <!--必需 --> <version>2.12.3</version> </dependency>
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency>
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-nosql</artifactId> <!-- 必需,否则报错 --> <version>2.7</version> </dependency>
log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="off" monitorInterval="30"> <Appenders> <NoSql name="mongoAppender" bufferSize="10"> <!--建议bufferSize配置,减少频繁写操作。 --> <MongoDb databaseName="sl0" collectionName="log4j2" server="127.0.0.1" port="27017"/> </NoSql> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%m%n"/> </Console> </Appenders> <Loggers> <Logger name="mongologger" level="debug"> <appender-ref ref="mongoAppender"/> </Logger> <Logger name="org" level="debug"> <appender-ref ref="mongoAppender"/> <appender-ref ref="STDOUT" /> </Logger> <Root level="debug"> <appender-ref ref="STDOUT" /> </Root> </Loggers> </Configuration>
unit:
package org.sl; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test; public class Test2 { //都会输出到mongo中,见log4j2.xml配置 static Logger clzlogger = LogManager.getLogger(Test2.class); static Logger mongologger = LogManager.getLogger("mongologger"); @Test public void t1(){ mongologger.info("mongologger"); clzlogger.info("clzlogger"); } }