MongoDB:将mongod记录到标准输出
我在家用笔记本电脑上运行MongoDB已经有一段时间了。运行MongoDB:将mongod记录到标准输出,mongodb,Mongodb,我在家用笔记本电脑上运行MongoDB已经有一段时间了。运行mongod将输出到标准输出。超级 我刚把它安装在我的工作笔记本电脑上,但它正在记录到一个文件中 $ sudo mongod all output going to: /usr/local/var/log/mongodb/mongo.log 默认情况下,MongoDB应该根据文档记录到stdout。mongoDB的安装是通过home brew完成的。为什么mongod要登录到一个文件,我如何让它改为登录到stdout?正如其他答案所说
mongod
将输出到标准输出。超级
我刚把它安装在我的工作笔记本电脑上,但它正在记录到一个文件中
$ sudo mongod
all output going to: /usr/local/var/log/mongodb/mongo.log
默认情况下,MongoDB应该根据文档记录到stdout。mongoDB的安装是通过home brew完成的。为什么mongod要登录到一个文件,我如何让它改为登录到stdout?正如其他答案所说,很可能在配置文件中设置了“logpath”。如果您不知道它在哪里,您可以通过运行mongod找到它,如:
sudo su -
strace -e open mongod
这会给出一些信息—mongod试图打开的每个文件—您应该能够在其中找到配置文件。对我来说,它看起来是这样的(部分):
找到文件后,用#注释掉logpath=行,您的日志应该输出到stdout。在我的机器上,brew在
/usr/local/etc/
中创建了一个mongod.conf文件
此外,您应该在日志文件/usr/local/var/log/mongodb/mongo.log
的第7行(大约)看到类似的内容:
Tue Jan 8 10:14:25 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb" }
除了按照其他人的建议关闭文件日志记录外,您还可以执行以下操作:
sudo mongod; tail -f /usr/local/var/log/mongodb/mongo.log
如果运行
cat`which mongod`
可以看到mongod
二进制文件周围的Ruby包装器在未传递--config
参数的情况下附加了默认配置
ARGV来自:
systemLog.destination类型:字符串
MongoDB将所有日志输出发送到的目标。指定其中一个
文件或系统日志。如果指定文件,还必须指定
systemLog.path
如果未指定systemLog.destination,MongoDB将发送所有日志
输出到标准输出
你试过注释/etc/mongodb.conf中的logpath设置吗?它可能使用了/etc/mongodb.conf或类似文件中的设置。我看不到该文件。它可能在别的什么地方?也许是自家酿的酒把它放在了一个奇怪的地方。
sudo mongod; tail -f /usr/local/var/log/mongodb/mongo.log
# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb
# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true
# Only accept local connections
bind_ip = 127.0.0.1