CouchDB 日志在 map 或 reduce 函数中不起作用?

CouchDB log does not work in map nor reduce function?

doc 说有一个 log 方法可以在 INFO 级别将消息写入日志文件。 我试过了,但没有用。 (CouchDB 1.6.1)

首先我开始监控日志文件

tail -f couch.log

我看到正在附加日志文件并且其他信息消息显示为。

[Tue, 06 Jan 2015 08:16:10 GMT] [info] [<0.321.0>] 192.168.1.43 - - GET /test/ 200
[Tue, 06 Jan 2015 08:16:10 GMT] [info] [<0.323.0>] 192.168.1.45 - - GET /test/ 200

我在视图(包括临时视图或持久性视图)中尝试了 log,在附加其他 INFO 消息时该消息从未出现。视图响应正确。也试过添加新文档然后触发视图,还是不行

function(doc) {
  log('LOG NEVER APPEARS');
  emit(null, doc);
}

有人知道是什么原因吗?

可能发生的事情是您创建了视图并且日志功能在终端上记录了请求。当您 tailed 时,索引已经创建并且视图代码不再是 运行。尝试添加一些数据并再次调用视图。或者更改视图->保存->再次调用视图,您应该会看到记录的消息。

发生这种情况是因为视图代码 运行 仅当 couchdb 中的基础数据发生变化时。创建视图后,它会通过将新数据附加到现有索引来增长。如果数据没有改变,视图中的代码将不会是 运行。