Монитор ведения журнала Python через http-сервер

#python #http #sockets #logging

#python #http #сокеты #ведение журнала

Вопрос:

Существуют ли какие-либо инструменты, которые перехватывают отчеты обработчиков журналов python (сокетов или http) и обслуживают службу http, чтобы я мог проверять свои журналы через страницу http?

Спасибо

Наконец… Я нашел рабочий сервер, который выполнит эту работу…

LoggingWebMonitor

Обновить

Я нашел 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. Даже работает удаленно для журналов на нескольких серверах. И вы можете сделать намного больше, чем просто проверять журналы.