应项目需求,为了解决高并发问题的产生,最近接触到了一种新技术,那就是log4j写日志记录到mongodb中。
这里,我就以能够搭建成一个完整的项目为例,来简单介绍这种集成技术的用法。
毋庸置疑,
一、先导包:
mongodb-java-driver.jar
log4mongodb-java.jar
log4j.jar
三个包,这里就不提供下载地址了,网上一搜一大把。
二、配置log4j.propertities文件
log4j.rootLogger=INFO, MongoDB//这行代码不必多说
log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
log4j.appender.MongoDB.databaseName=appname //mongodb数据库,自动创建
log4j.appender.MongoDB.collectionName=log //mongodb集合,自动创建
log4j.appender.MongoDB.hostname
=127.0.0.1 //因为我的mongodb安装在本地
log4j.appender.MongoDB.port=27017 //mongodb默认端口
以上几行代码,是必须配置在log4j.propertities文件中的。
三、java代码实现
Logger logger = Logger.getLogger(LogTest.class);
);
mongodb存储数据一般也是key value形式,所以存数据最好也用json。
四、框架到此为止算是搭建完成,简单吧!
PS:如果大家在调用logger.INFO(json)时,控制台有数据输入,而且还能生成日志文件,但在mongodb中却查不到数据,问题很可能出在log4j.properties文件中,切忌完全复制粘贴,要理解其代码本意,详细介绍请见我的博文,《log4j日志管理技术》。例外,给大家简单介绍一下mongodb技术,只讲在这篇文章可能遇到的知识:
mongodb不用手动创建数据库和集合,它是隐式自动创建的,非常简单。如上文要连接appname数据中的log集合,我们不必单独在mongodb中创建,只有我们向mongodb插数据的时候才会自动创建数据库和集合。
大家可以在打开mongo.exe,在shell命令中输入show dbs和show collections查看mongodb中已有的数据库和在此数据库下的集合。