private static Logger logger = LogManager.getLogger("utils.LogUtils");
public static void open(){
//参数按照顺序,数据库名,表名,工厂类,工厂方法
NoSqlProvider provider = MongoDbProvider.newBuilder().
setDatabaseName(Consts.DEFAULT_DB_NAME).setCollectionName("log").
setFactoryClassName("utils.db.MongoManager").setFactoryMethodName("getMongoClient").build();
Appender appender = NoSqlAppender.createAppender("mongo","false",null,"10",provider);
final LoggerContext ctx = (LoggerContext)LogManager.getContext(false);
final Configuration config = ctx.getConfiguration();
appender.start();
config.addAppender(appender);
config.getLoggerConfig("utils.LogUtils").addAppender(appender, Level.INFO,null);
ctx.updateLoggers(config);
}
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="utils.LogUtils" level="info">
<AppenderRef ref="Console"/>
</Logger>
<Root level="info">
</Root>
</Loggers>
</Configuration>
maven
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-nosql</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
本文介绍如何使用Log4j2框架与MongoDB数据库集成,实现日志的存储与管理。通过配置log4j2.xml文件,设置NoSqlAppender,将日志信息保存到MongoDB中,同时保持控制台输出。此方案适用于需要持久化存储大量日志信息,并进行后续数据分析的场景。
1219

被折叠的 条评论
为什么被折叠?



