MongoDB Spring Bootを統合したlogback
1、pom.xml
<dependency>
<groupId>org.mongodbgroupId>
<artifactId>mongo-java-driverartifactId>
<version>3.4.2version>
dependency>
<dependency>
<groupId>ch.qos.logbackgroupId>
<artifactId>logback-coreartifactId>
<version>1.1.11version>
dependency>
<dependency>
<groupId>ch.qos.logbackgroupId>
<artifactId>logback-classicartifactId>
<version>1.1.11version>
dependency>
2、logback.xml <appender name="MONGODB" class="com.lovnx.common.log.appender.MongoDBAppender">
<DbHost>168.1.1.200DbHost>
<DbPort>27017DbPort>
<DbName>system_logDbName>
<DbCollectionName>logDbCollectionName>
appender>
<logger name="MONGODB" level="INFO">
<appender-ref ref="MONGODB"/>
logger>
3、アプリpackage com.lovnx.common.log.appender;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.AppenderBase;
import ch.qos.logback.core.status.ErrorStatus;
public class MongoDBAppender extends AppenderBase {
private MongoClient _mongo;
private MongoCollection _collection;
private String _dbHost = "168.1.1.200";
private int _dbPort = 27017;
private String _dbName = "logging";
private String _dbCollectionName = "logging";
@Override
public void start() {
try {
_mongo = new MongoClient(_dbHost, _dbPort);
MongoDatabase db = _mongo.getDatabase(_dbName);
_collection = db.getCollection(_dbCollectionName);
} catch (Exception e) {
addStatus(new ErrorStatus("Failed to initialize MondoDB", this, e));
return;
}
super.start();
}
public void setDbHost(String dbHost) {
_dbHost = dbHost;
}
public void setDbName(String dbName) {
_dbName = dbName;
}
public void setDbCollectionName(String dbCollectionName) {
_dbCollectionName = dbCollectionName;
}
public void setDbPort(int dbPort) {
_dbPort = dbPort;
}
@Override
public void stop() {
_mongo.close();
super.stop();
}
@Override
protected void append(LoggingEvent event) {
try{
Document document = getDocument(event.getFormattedMessage());
if(document != null){
_collection.insertOne(document);
}
}catch (Exception e) {
addStatus(new ErrorStatus(" MongDB ", this, e));
}
}
// json mongo
private Document getDocument(String json) {
try{
return Document.parse(json);
}catch (Exception e) {
return null;
}
}
}
4、呼び出し// ,
//
private static final Logger LOGGER = LoggerFactory.getLogger(Result.class);
// mongo
private static final Logger mongoLog = LoggerFactory.getLogger("MONGODB");