Couchdb 从couchapp自定义登录coach.log?

Couchdb 从couchapp自定义登录coach.log?,couchdb,couchapp,Couchdb,Couchapp,是否可以从couchapp写入couchdb服务器日志(在[log]中默认定义的.ini或local.ini)?(但来自) 如果这是不可能的,也许有一种变通方法可以允许在couchdb服务器日志中记录成功或不成功的身份验证尝试?我想处理这个服务器端,并希望避免记录所有的httpd活动和用户日志模式,这似乎并不容易或漂亮 干杯 Jun我很确定你不能从视图中写入coach.log,它是一个沙盒系统 不过,获取与服务器的连接记录是可能的。下面是my Coach.log中的转储,其中包含HTTP错误:

是否可以从couchapp写入couchdb服务器日志(在
[log]
中默认定义的.ini或local.ini)?(但来自)

如果这是不可能的,也许有一种变通方法可以允许在couchdb服务器日志中记录成功或不成功的身份验证尝试?我想处理这个服务器端,并希望避免记录所有的httpd活动和用户日志模式,这似乎并不容易或漂亮

干杯


Jun

我很确定你不能从视图中写入coach.log,它是一个沙盒系统

不过,获取与服务器的连接记录是可能的。下面是my Coach.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/
/
[Sat,2014年9月13日08:18:57 GMT][info][]db的开放索引:测试idx:_design/ivet sig:“f6b64ef8593e23cac644c13b895b7607”
[Sat,2014年9月13日08:18:57 GMT][info][]127.0.0.1--GET/test/_design/ivet/_view/medicationWHP/foobar?include_docs=true 200
[Sat,2014年9月13日08:18:57 GMT][info][]127.0.0.1--GET/test/_design/ivet/_view/medicationWHP/foobar?include_docs=true 500
[Sat,2014年9月13日08:18:57 GMT][错误][]httpd 500错误响应:
{“error”:“json_encode”,“reason”:“{bad_term,{key,null}}”
[Sat,2014年9月13日08:19:05 GMT][info][]Apache CouchDB已于http://127.0.0.1:5984/
您可以看到它的每一行都有谓词路径代码格式,因此您可以根据需要对其进行筛选。(Unauthorized is 401)您也可以通过/\u log访问日志。详情如下:

要获取所有这些信息,需要将日志级别设置为info。您可以在futon的配置屏幕上执行此操作


要在服务器端完成,您可能需要使用node.js或类似的东西。只需让它使用/_日志端点,并通过HTTP响应代码过滤每一行即可

一年后,我发现事实上可以使用
log()
函数从视图(或列表)登录:

日志(消息) 将消息记录到CouchDB日志(在信息级别)

参数:
消息–要记录的消息

map函数运行后,可以在CouchDB日志(例如at/var/log/CouchDB/coach.log)中找到以下行:

[Sat,2012年11月3日17:38:02 GMT][info][]操作系统进程#端口日志::处理文档8d300b86622d67953d102165dbe99467

谁会猜到呢:)

嘿,谢谢你的回答,我对此感到敬畏,并在我的问题中提到:“希望避免记录所有httpd活动和用户日志模式,这似乎不容易或不美观……”。但无论如何,很高兴知道这在另一方面可能是不可能的。你知道为什么不这样做的原因吗?这似乎不是一个安全问题,它对很多事情(指标、自定义错误等)都很有用,我认为原因在于架构。CouchDB和视图服务器实际上是通过stdio进行通信的独立程序。视图服务器没有自己的日志,CouchDB和视图服务器之间的通信协议中也没有任何内容来促进日志消息的传输。这不仅仅是在视图服务器中调用log()的简单情况。
function(doc){
    log('Procesing doc ' + doc['_id']);
    emit(doc['_id'], null);
}
[Sat, 03 Nov 2012 17:38:02 GMT] [info] [<0.7543.0>] OS Process #Port<0.3289> Log :: Processing doc 8d300b86622d67953d102165dbe99467