从couchapp自定义登录couch.log



是否可以从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响应代码过滤每一行即可。

最新更新