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>