#python #http #sockets #logging
#python #http #сокеты #ведение журнала
Вопрос:
Существуют ли какие-либо инструменты, которые перехватывают отчеты обработчиков журналов python (сокетов или http) и обслуживают службу http, чтобы я мог проверять свои журналы через страницу http?
Спасибо
Наконец… Я нашел рабочий сервер, который выполнит эту работу…
Обновить
Я нашел Sentry на github, он кажется более сложным и готовым к производству.
Комментарии:
1. вы имеете в виду что-то вроде LogRecordStreamHandler ?
2. @J.F. Sebastian да, я пробовал это. это работает для меня, но я действительно хочу, чтобы к нему можно было получить доступ через http, чтобы журнал можно было широко использовать
3. Почему бы вам просто не войти в (безопасный) файл, а затем указать на это обычному веб-серверу? Разве это не было бы проще и менее подвержено ошибкам?
4. @Noufal Ibrahim: я намеревался регистрировать несколько приложений на разных серверах, я знаю, что если у меня есть только одна машина, одно приложение, и ведение журнала на самом деле не такое интенсивное (не загромождайте жесткий диск), вы совершенно правы.
Ответ №1:
Существует множество инструментов для простого создания веб-сервисов RESTful HTTP. Мой любимый — itty.
from itty import get, run_itty
import glob, gzip, json, os, functools
def jsonify(origfunc):
@functools.wraps(origfunc)
def wrapper(*args, **kwds):
result = origfunc(*args, **kwds)
return json.dumps(result, indent=4)
return wrapper
@get('/logs')
@jsonify
def list_logfiles(request):
return glob.glob('/var/log/myserver/*.gz')
@get('/logs/(?P<name>w )')
def show_logfile(request, name):
fullname = os.path.join('/var/log/myserver', name)
with gzip.open(fullname, 'rb') as f:
return f.read()
run_itty(host='localhost', port=8080)
Комментарии:
1. спасибо за код, но я не могу выполнять ведение журнала файлов в тяжелых условиях на своем сервере
Ответ №2:
я рекомендую вам bootle.py — хорошая платформа для этих случаев.
Вот ссылка на веб-сайт проекта: http://bottlepy.org/docs/dev /
Ответ №3:
Попробуйте Splunk, он прост в настройке и имеет приятный интерфейс. Вы бы прослушивали свои файлы журналов или просто отправляли журналы в splunk. Даже работает удаленно для журналов на нескольких серверах. И вы можете сделать намного больше, чем просто проверять журналы.