Уведомления

Группа в Telegram: @pythonsu

#1 Июль 11, 2011 13:59:41

Apollo46
От:
Зарегистрирован: 2011-07-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с logging

Следующая задача.

Дано:
Есть единая система работающая на нескольких машинах, на каждой машине ведется свой журнал логов(на каждой машине его формат одинаков). Все записи идут в хронологическом порядке.

Задача: написать программу которая будет из любого количества логов создавать один, при этом сохраняя хронологический порядок и будет иметь возможность сортировки по уровню важности (например если указать в конфиге error, то будут отображаться записи только с уровнем error и выше).
В качестве аргументов должны передаваться названия файлов а вывод через stdout(консоль).

Вопрос: какой путь избрать?

http://docs.python.org/howto/logging-cookbook.html#sending-and-receiving-logging-events-across-a-network

Я склоняюсь сделать через sockethandler(способ по ссылке выше). Верно размышляю? Или есть более элегантное решение?



Отредактировано (Июль 11, 2011 14:05:10)

Офлайн

#2 Июль 11, 2011 14:49:17

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Работа с logging

Apollo46
Вопрос: какой путь избрать?
Взять syslog-ng?



Офлайн

#3 Июль 11, 2011 14:55:44

Apollo46
От:
Зарегистрирован: 2011-07-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с logging

Александр Кошелев
В этом и вся соль, что надо свое написать.

Насколько я знаю, python не умеет из нескольких лог файлов собирать один обычным способом. Вот цитата из оф. документации:
Although logging is thread-safe, and logging to a single file from multiple threads in a single process is supported, logging to a single file from multiple processes is not supported, because there is no standard way to serialize access to a single file across multiple processes in Python. If you need to log to a single file from multiple processes, one way of doing this is to have all the processes log to a SocketHandler, and have a separate process which implements a socket server which reads from the socket and logs to file. (If you prefer, you can dedicate one thread in one of the existing processes to perform this function.) The following section documents this approach in more detail and includes a working socket receiver which can be used as a starting point for you to adapt in your own applications.

Так что кроме sockethandler и socketserver не вижу путей. Помогите пожалуйста если кто-то знает. Нужно сделать как можно быстрее.



Отредактировано (Июль 11, 2011 14:57:31)

Офлайн

#4 Июль 11, 2011 15:35:08

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Работа с logging

Apollo46
В этом и вся соль, что надо свое написать.
Что это значит? Вам решение нужно или что?



Офлайн

#5 Июль 11, 2011 15:43:58

Apollo46
От:
Зарегистрирован: 2011-07-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с logging

Может кто-нибудь подсказать, как лучше решить эту задачу? Пожалуйста.



Отредактировано (Июль 11, 2011 19:57:59)

Офлайн

#6 Июль 12, 2011 14:27:00

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Работа с logging

Apollo46, я вот не понимаю, вам сессию сдать или почему не подходит вариант с сислогом, который уже все это дело умеет?



Отредактировано (Июль 12, 2011 14:41:05)

Офлайн

#7 Июль 14, 2011 09:51:48

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Работа с logging

> Задача: написать программу которая будет из любого количества логов создавать один
> Вопрос: какой путь избрать?
> Я склоняюсь сделать через sockethandler

А при чём тут сокеты? Открываем файлы, парсим и собираем налету (без накопления в памяти) в один поток. Какой тут может быть путь? logging для протоколирования, не для последующей обработки протоколов.

..bw



Офлайн

#8 Июль 14, 2011 18:49:27

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Работа с logging

bw
Если логи нужно анализировать в реалтайм или приближенно к этому, то использование доп. хэндлера в самый раз.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version