log4mongo的使用(MongoDB3.4)

本文介绍如何使用Log4j进行MongoDB的日志配置,包括不同级别的日志记录、自定义日志格式以及配置MongoDB连接参数等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#ERROR,WARN,INFO,DEBUG,这里不显示DEBUG级别的日志,语法为
#log4j.rootLogger=[level],appenderName,appenderName,...
log4j.rootLogger=INFO,stdout,MongoDB

#如果使用layout属性,则配置MongoDbPatternLayoutAppender,即使用自定义的json数据,不使用已有的字段信息
#log4j.appender.MongoDB=org.log4mongo.MongoDbPatternLayoutAppender
#log4j.appender.MongoDB.layout=org.log4mongo.MongoDbPatternLayout
#ConversionPattern属性值(string,arrays)必须是有效的json文档,嵌套文档
#log4j.appender.MongoDB.layout.ConversionPattern={"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss'Z'}","level":"%p","class":"%c{1}","message":"%m","filename":"%F","NDC":"%x","eventLocation":"%l","threadName":"%t","elapsed time":"%r"}

#ExtendedMongoDbAppender是在已有的字段信息上做扩展,可使用rootLevelProperties属性配置扩展字段
#log4j.appender.MongoDB=org.log4mongo.ExtendedMongoDbAppender
#log4j.appender.MongoDB.rootLevelProperties=applicationName=log&eventType=Development


#可以配置多个host和port,但是要一一对应否则会抛异常
#appender是一个接口,MongoDB是appenderName,对应于接口中的setName方法
log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
log4j.appender.MongoDB.databaseName=log
log4j.appender.MongoDB.collectionName=log
#需要创建admin库和admin用户,然后在创建其他的库和用户以及对应的角色权限
log4j.appender.MongoDB.userName=log
log4j.appender.MongoDB.password=log
log4j.appender.MongoDB.hostname=nosql
log4j.appender.MongoDB.port=27017

#目前writeConcern建议的几种级别:UNACKNOWLEDGED,ACKNOWLEDGED,W1,W2,W3,JOURNALED,MAJORITY
#w1,2,3分别代表客户端向mongo中写操作时成功写入number个节点才算成功,可设置wTimeoutMS选项(只针对number>1),如果超过这个时间写入失败。
#MAJORITY:数据写入到副本集大多数成员后向客户端发送确认,适用于对数据安全性要求比较高的场景,该选项会降低写入性能
#JOURNALED:如果要求Primary写入持久化了(提交journal文件到磁盘上)才向客户端确认,则指定该选项为true
#ACKNOWLEDGED:默认级别,mongod会去确认它接收到了这个写操作并且将这个写操作应用到内存数据中
#UNACKNOWLEDGED:mongodb服务器不会去确认写操作是否真正收到了
#log4j.appender.MongoDB.writeConcern=ACKNOWLEDGED

#Replica Sets示例:
#如果是使用mongodb复制集,可以使用如下配置,可以写mongos的端口号,也可以指定副本集下某个主机的端口号
#如果使用mongos的端口号,mongos会将数据写入信息存储到config配置服务器下
#log4j.appender.MongoDB.hostname=nosql
#log4j.appender.MongoDB.port=30000

#三个端口分别是三个副本集下主机的端口号,如果要使用分片,必须在某个数据库下开启分片功能并且指定要分片的集合和片键,
#然后数据就可以分布在不同的副本集上,做数据量的负载均衡,在配置服务器下会记录整个分片的过程,
#超过每个chunk设置的大小,默认64M,引发split(sharding分片)-->每个分片下的chunk数量不一样引发数据不平衡,做下列操作
#moveChunk.from-->moveChunk.start-->moveChunk.to-->moveChunk.commit(banlance)
#multi-split(每个分片服务器下chunk的拆分)
#log4j.appender.MongoDB.hostname=nosql nosql nosql
#log4j.appender.MongoDB.port=11001 21001 31002

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

 

转载于:https://my.oschina.net/lzhaoqiang/blog/844860

### 安装和配置 MongoDB 3.4 on Ubuntu 24.04 #### 准备工作 为了确保顺利安装MongoDB 3.4,在开始之前需确认系统已更新至最新状态并拥有必要的权限。 #### 下载 MongoDB 3.4 由于官方仓库可能不提供如此旧版本的直接下载链接,建议从MongoDB官方网站获取对应版本的`.tgz`压缩包。命令如下所示: ```bash wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.4.24.tgz tar zxvf mongodb-linux-x86_64-ubuntu1604-3.4.24.tgz sudo mv mongodb-linux-x86_64-ubuntu1604-3.4.24 /usr/local/mongodb/ ``` #### 设置环境变量 为了让系统识别新安装的MongoDB路径,编辑用户的shell配置文件(对于大多数用户来说是~/.bashrc),加入以下行来扩展$PATH环境变量[^1]: ```bash export PATH=/usr/local/mongodb/bin:$PATH source ~/.bashrc ``` #### 创建数据与日志目录 考虑到较新的Ubuntu发行版默认安全策略以及最佳实践,手动创建用于存储数据库文件及记录运行状况的日志文件夹是有益处的做法。这一步骤并非严格必要,但如果希望遵循标准布局,则可以执行下面的操作[^4]: ```bash sudo mkdir -p /var/lib/mongodb sudo chown `id -u`:`id -g` /var/lib/mongodb sudo chmod 755 /var/lib/mongodb sudo mkdir -p /var/log/mongodb sudo chown `id -u`:`id -g` /var/log/mongodb sudo chmod 755 /var/log/mongodb ``` #### 启动服务 启动MongoDB实例前,先编写一个简单的配置文件 `/etc/mongod.conf` 或者放置于其他合适的位置,内容至少应包含监听端口、数据目录等基本信息。之后可以通过mongod命令启动服务器进程: ```bash /usr/local/mongodb/bin/mongod --config /path/to/your/mongod.conf & ``` #### 测试连接 最后验证安装是否成功的方法之一就是尝试打开mongo shell并与之交互。如果一切正常的话,应该能够看到提示符等待输入查询语句。 ```bash mongo show dbs; exit ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值