是否可以从couchhapp写入couchdb服务器日志(由[log]
中的default.ini或local.ini定义的日志)?(但从其他角度看)
如果这不可能,也许有一种变通方法可以允许在couchdb服务器日志中记录成功或不成功的身份验证尝试?我想处理这个服务器端,并希望避免记录所有httpd活动和grepping用户日志记录模式,这似乎并不容易或漂亮。。。
干杯,
Jun
一年后,我发现实际上可以使用log()
函数从视图(或列表或任何Javascript Design Doc函数)进行日志记录:http://docs.couchdb.org/en/1.6.1/query-server/javascript.html#log
日志(消息)
将消息记录到CouchDB日志中(在INFO级别)。
参数:
message–要记录的消息
function(doc){
log('Procesing doc ' + doc['_id']);
emit(doc['_id'], null);
}
map函数运行后,可以在CouchDB日志中找到以下行(例如,在/var/log/CouchDB/couch.log):
[Sat, 03 Nov 2012 17:38:02 GMT] [info] [<0.7543.0>] OS Process #Port<0.3289> Log :: Processing doc 8d300b86622d67953d102165dbe99467
谁能猜到呢:)
我很确定你不能从视图中写入couch.log,它是一个沙盒系统。
不过,获取到服务器的连接记录是可能的。这是我的couch.log中的一个转储,其中有一个HTTP错误:
/
[Sat, 13 Sep 2014 08:18:57 GMT] [info] [<0.160.0>] Opening index for db: test idx: _design/ivet sig: "f6b64ef8593e23cac644c13b895b7607"
[Sat, 13 Sep 2014 08:18:57 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /test/_design/ivet/_view/medicationWHP/foobar?include_docs=true 200
[Sat, 13 Sep 2014 08:18:57 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /test/_design/ivet/_view/medicationWHP/foobar?include_docs=true 500
[Sat, 13 Sep 2014 08:18:57 GMT] [error] [<0.121.0>] httpd 500 error response:
{"error":"json_encode","reason":"{bad_term,{key,null}}"}
[Sat, 13 Sep 2014 08:19:05 GMT] [info] [<0.36.0>] Apache CouchDB has started on http://127.0.0.1:5984/
您可以看到它的每一行都有VERB PATH CODE格式,因此您可以根据需要进行过滤。(未经授权为401)您也可以通过/\log访问日志。详细信息如下:
http://docs.couchdb.org/en/latest/api/server/common.html#log
要获取所有这些信息,您需要将日志级别设置为info。您可以在futon的配置屏幕上执行此操作。
要在服务器端执行此操作,您可能需要使用node.js或类似的东西。只需让它使用/\log端点,并通过HTTP响应代码过滤每一行即可。