是否可以从couchapp中写入couchdb服务器日志(由default.ini或local.ini中的[log]
定义的日志)? (但从somewhere else than a view)自couchapp在couch.log中自定义日志记录?
如果这是不可能的,也许有一种解决方法,可以记录在couchdb服务器日志中成功或不成功的身份验证尝试?我想处理此服务器端,想避免记录所有的httpd活动和grepping为用户登录模式,这似乎并不容易,也不漂亮......
干杯,
君
是否可以从couchapp中写入couchdb服务器日志(由default.ini或local.ini中的[log]
定义的日志)? (但从somewhere else than a view)自couchapp在couch.log中自定义日志记录?
如果这是不可能的,也许有一种解决方法,可以记录在couchdb服务器日志中成功或不成功的身份验证尝试?我想处理此服务器端,想避免记录所有的httpd活动和grepping为用户登录模式,这似乎并不容易,也不漂亮......
干杯,
君
一年后我发现,它实际上可能使用log()
功能从视图(或列表或any Javascript Design Doc functions)登录:http://docs.couchdb.org/en/1.6.1/query-server/javascript.html#log
记录一条消息给CouchDB日志(在INFO级别)。
参数:
消息 - 消息要记录
function(doc){
log('Procesing doc ' + doc['_id']);
emit(doc['_id'], null);
}
在地图功能运行后,下面的行可以在CouchDB中日志中找到(例如位于/ var /日志/ 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/
你可以看到它的每一行动词路径代码的格式,所以你可以过滤任何你所需要的。 (未授权为401)您还可以通过/ _log访问日志。对细节的位置:
http://docs.couchdb.org/en/latest/api/server/common.html#log
要获得所有这些信息,你需要有设置信息的日志级别。您可以在蒲团的配置屏幕上执行此操作。
要做到服务器端,你可能需要使用node.js或类似的东西。只要它使用/ _log端点,并通过HTTP响应代码筛选每一行。
嘿,谢谢你的回答,我对此感到惊讶,并在我的问题中提到:“想避免记录所有httpd活动和grepping用户日志模式,这似乎并不容易或漂亮.. “。但无论如何,很高兴知道以其他方式可能无法实现。你有没有看到为什么不是?它似乎并不是一个安全问题,它会对很多事情有用(度量,自定义错误......) – jun 2014-09-29 14:12:38
我认为原因是建筑。 CouchDB和视图服务器实际上是通过stdio进行通信的独立程序。视图服务器没有自己的日志,并且CouchDB和视图服务器之间的通信协议没有任何内容来促进日志消息的传输。这不仅仅是在视图服务器中调用log()的简单情况。 – ddouglascarr 2014-10-03 11:06:07