2014-09-28 1 views
0

Можно ли записать в журнал сервера couchdb (тот, который определен default.ini или local.ini в [log]) с couchapp? (Но от somewhere else than a view)Пользовательские регистрации в couch.log с couchapp?

Если это невозможно, возможно, существует обходное решение, позволяющее регистрировать успешные или неудачные проверки подлинности в журнале сервера couchdb? Я хотел бы, чтобы обработать эту сторону сервера, и хотел бы избежать регистрации всех HTTPd деятельности и для моделей оглавлению лесозаготовительных пользователей, которые, кажется, не будет легко или довольно ...

Приветствия,

июн

ответ

0

Через год я считаю, что это было в самом деле можно войти из представлений (или списков или any Javascript Design Doc functions) с помощью log() функции: 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 (например, в/вар/Журнал/CouchDB /couch.log):

[Sat, 03 Nov 2012 17:38:02 GMT] [info] [<0.7543.0>] OS Process #Port<0.3289> Log :: Processing doc 8d300b86622d67953d102165dbe99467 

Кто бы мог подумать :)

0

Я уверен, что вы не можете писать на 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/ 

Вы можете видеть, что это имеет формат CODE ГЛАГОЛА PATH для каждой строки, так что вы можете выбирать, что для все, что нужно. (Неавторизованный - 401). Вы также можете получить доступ к журналу через/_log. Более подробная информация о том, что здесь:

http://docs.couchdb.org/en/latest/api/server/common.html#log

Чтобы получить всю эту информацию, вам необходимо иметь уровень ведения журнала информации. Вы можете сделать это на экране конфигурации в футоне.

Чтобы сделать это на стороне сервера, вам, вероятно, потребуется использовать node.js или что-то в этом роде. Просто им нужно использовать конечную точку/_log и фильтровать каждую строку с помощью кода ответа HTTP.

+0

Эй, спасибо за ответ, я был в этом и упомянул в своем вопросе: «хотел бы избежать регистрации всех действий httpd и grepping для пользовательских шаблонов регистрации, что, похоже, не просто или красиво .. . ". Но в любом случае, хорошо знать, что это, вероятно, невозможно по-другому. Вы видите причину, почему нет? Не похоже, что это будет проблемой безопасности, и это было бы полезно для ряда вещей (метрики, пользовательские ошибки, ...) – jun

+0

Я думаю, что причина в архитектурном. CouchDB и серверы просмотра фактически являются отдельными программами, которые обмениваются данными по stdio.Серверы просмотра не имеют собственных журналов, и нет ничего в протоколе связи между CouchDB и сервером просмотра, чтобы облегчить передачу сообщений журнала. Это не просто случай вызова журнала() на сервере представлений. – ddouglascarr