我已经在家用笔记本电脑上运行了MongoDB一段时间了.正确运行mongod输出到stdout.超...
我刚刚将它安装在我的工作笔记本电脑上,但它正在记录到一个文件.
$ sudo mongod
all output going to: /usr/local/var/log/mongodb/mongo.log
Run Code Online (Sandbox Code Playgroud)
默认情况下,MongoDB应根据文档记录到stdout.mongoDB的安装是通过家庭酿造完成的.为什么mongod会记录到文件中,如何让它记录到stdout呢?
Kev*_*erg 10
如果运行,cat `which mongod`您可以看到,mongod如果--config未传递参数,则二进制文件周围的Ruby包装器会附加默认配置.
ARGV << '--config' << '/usr/local/etc/mongod.conf' unless ARGV.find { |arg| arg =~ /--config/ }
exec "/usr/local/Cellar/mongodb/2.2.3-x86_64/mongod", *ARGV
Run Code Online (Sandbox Code Playgroud)
默认配置包含以下内容
# 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
Run Code Online (Sandbox Code Playgroud)
因为你可以看到两者logappend并且logpath已经设定.该logpath设置通常None意义/dev/stdout.
到了这一点.mongod --config false将输出到STDOUT.那将运行mongod没有配置的二进制文件.如果这不理想,请更改配置设置/usr/local/etc/mongod.conf.
正如其他答案所说,您可能在配置文件中进行了“logpath”设置。如果您不知道它在哪里,可以通过运行 mongod 来找到它,如下所示:
\n\nsudo su -\nstrace -e open mongod\nRun Code Online (Sandbox Code Playgroud)\n\n这会输出一些信息 - mongod 尝试打开的每个文件 - 您应该能够在其中找到配置文件。对我来说,它看起来像这样(部分):
\n\n\xe2\x80\xa6\nopen("/proc/cpuinfo", O_RDONLY) = 3\nopen("/dev/urandom", O_RDONLY) = 3\nopen("/etc/mongodb.conf", O_RDONLY) = 4\nall output going to: /var/log/mongodb/mongodb.log\nopen("/var/log/mongodb/mongodb.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 4\nopen("/var/log/mongodb/mongodb.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 1\n\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n\n找到该文件后,注释掉(用#)logpath=行,您的日志应该输出到stdout。
\n| 归档时间: |
|
| 查看次数: |
5718 次 |
| 最近记录: |