log4j配置目标到mongodb
首先,具体采用什么技术作为集中式存储方案在99%的应用中应该来说并没有多大区别,最重要的是要定期清理不必要的日志,以及日志格式设计(也可以重写org.log4mongo.MongoDbPatternLayoutAppender.append())的在出现问题时能够方便地查找到所有的上下关联的信息、同时考虑搜索message时的性能。对于分布式系统而言尤其如此,其日志通常跨越多个服务器,确保每个环节的日志能够衔接起来才是日志服务器的关键,纯粹的将日志从分散存储归集到集中式存储除了增加系统不稳定性和成本外,没有任何益处。
因为我们初步采用的mongodb作为存储,故整理如下:
1、安装mongodb,可从https://www.mongodb.com/download-center#community下载对应的tgz版本,并解压;
2、使用nohup mongod --dbpath /data/$MONGODB_HOME/db & 启动mongo服务器;
3、maven增加log4mongo(https://github.com/log4mongo/log4mongo-java)依赖,如下:
<dependency> <groupId>org.log4mongo</groupId> <artifactId>log4mongo-java</artifactId> <version>0.7.4</version> </dependency>
4、log4j配置如下:
log4j.rootCategory=INFO, stdout, R, MongoDB log4j.appender.MongoDB=org.log4mongo.MongoDbAppender log4j.appender.MongoDB.databaseName=osm-route #建议应用名称 log4j.appender.MongoDB.collectionName=log #随意 log4j.appender.MongoDB.hostname=localhost log4j.appender.MongoDB.port=27017
如果要配置主从,可按照如下配置:
log4j.appender.MongoDB.hostname=Server01 Server02 log4j.appender.MongoDB.port=27017 27017
根据实际的运行来看,稳定性不是特别好,建议使用logpool。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)