6

我已经在家用笔记本电脑上运行 MongoDB 一段时间了。mongod按照应有的方式将输出运行到标准输出。极好的...

我刚刚将它安装在我的工作笔记本电脑上,但它正在记录到一个文件中。

$ sudo mongod
all output going to: /usr/local/var/log/mongodb/mongo.log

根据文档,MongoDB 应该默认记录到标准输出。这个 mongoDB 的安装是通过 home brew 完成的。为什么 mongod 记录到文件中,我如何让它记录到 stdout?

4

5 回答 5

10

如果您运行cat `which mongod`,您会看到二进制文件周围的 Ruby 包装器会在未传递参数mongod的情况下附加默认配置。--config

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

默认配置包含以下内容

# 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

如您所见,logappend并且logpath已设置。该logpath设置通常None是有意义的/dev/stdout

说到点子上了。mongod --config false将输出到 STDOUT。这将在mongod没有配置的情况下运行二进制文件。如果这不理想,请更改/usr/local/etc/mongod.conf.

于 2013-02-15T10:32:59.100 回答
4

除了按照其他人的建议关闭文件日志记录之外,您还可以执行以下操作:

sudo mongod; tail -f /usr/local/var/log/mongodb/mongo.log
于 2013-01-08T10:49:29.110 回答
4

来自文档

systemLog.destination类型:字符串

MongoDB 将所有日志输出发送到的目的地。指定文件或系统日志。如果指定文件,则还必须指定 systemLog.path。

如果不指定 systemLog.destination,MongoDB 会将所有日志输出发送到标准输出。

于 2016-05-24T00:57:43.170 回答
1

正如其他答案所说,您很可能在配置文件中进行了“logpath”设置。如果你不知道那在哪里,你可以通过运行 mongod 来找到它:

sudo su -
strace -e open mongod

这会吐出一些信息 - mongod 尝试打开的每个文件 - 您应该能够在其中找到配置文件。对我来说,它看起来像这样(部分):

…
open("/proc/cpuinfo", O_RDONLY)         = 3
open("/dev/urandom", O_RDONLY)          = 3
open("/etc/mongodb.conf", O_RDONLY)     = 4
all output going to: /var/log/mongodb/mongodb.log
open("/var/log/mongodb/mongodb.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 4
open("/var/log/mongodb/mongodb.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 1
…

找到文件后,注释掉(用 # 号)logpath= 行,您的日志应该输出到标准输出。

于 2012-11-22T09:01:42.023 回答
0

在我的机器上,brew 创建了一个 mongod.conf 文件/usr/local/etc/

此外,您应该在日志文件的第 7 行(左右)看到类似这样的内容/usr/local/var/log/mongodb/mongo.log

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" }
于 2013-01-08T09:27:55.550 回答