log4j2输出到mongodb

来源:互联网 发布:免费pk10分析软件 编辑:程序博客网 时间:2024/05/17 20:00
摘要: log4j2输出到mongodb

以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");    }}


0 0