我正在使用log4j在执行期间提取信息。我有兴趣将这样的信息存储到数据库中。特别是,我选择了MongoDB,我正在使用log4mongo。
一切都很好,我执行应用程序并且我能够将信息收集到MongoDB中,问题是我想用特定的结构记录信息,而不是String。也就是说,我想生成一个子文档。
问题异常是:
Exception in thread "main" com.mongodb.util.JSONParseException:
{"{ \"Key1\" : \"value1\" , \"Key2\" : \"value2\"}"}
我写的log4j.properties文件如下:
log4j.rootLogger=debug, MongoDB
log4j.appender.MongoDB=org.log4mongo.MongoDbPatternLayoutAppender
log4j.appender.MongoDB.hostname=localhost
log4j.appender.MongoDB.port=27017
log4j.appender.MongoDB.databaseName=db
log4j.appender.MongoDB.collectionName=coll
log4j.appender.MongoDB.layout=org.log4mongo.MongoDbPatternLayout
log4j.appender.MongoDB.layout.ConversionPattern={"message":%m}
我按如下方式调用log.debug:
private void extract() {
BasicDBObject obj = new BasicDBObject();
obj.put("Key1", "value1");
obj.put("Key2", "value2");
LOGGER.debug(obj);
}