#python #logging #geodjango
#python #ведение журнала #geodjango
Вопрос:
Я планирую добавить механизм ведения журнала в мой веб-сервис python и geodjango. Есть ли log4j похожий на механизм ведения журнала в python / geodjango?
Я ищу эквивалент log4j dailyrollingfileappender. Затем автоматически удалите все файлы журналов 1-месячной давности.
Приветствуются любые рекомендации.
UPDATES1 Я имею в виду приведенный ниже формат.
datetime(ms)|log level|current thread name|client ip address|logged username|source file|source file line number|log message
Ответ №1:
Да — Python 2.5 включает модуль «ведение журнала». Один из поддерживаемых им обработчиков — это handlers.TimedRotatingFileHandler
то, что вы ищете. ‘logging’ очень прост в использовании:
пример:
import logging
import logging.config
logging.fileConfig('mylog.conf')
logger = logging.getLogger('root')
Ниже приведен ваш конфигурационный файл для ведения журнала
#======================
# mylog.conf
[loggers]
keys=root
[handlers]
keys=default
[formatters]
keys=default
[logger_root]
level=INFO
handlers=default
qualname=(root) # note - this is used in non-root loggers
propagate=1 # note - this is used in non-root loggers
channel=
parent=
[handler_default]
class=handlers.TimedRotatingFileHandler
level=INFO
formatter=default
args=('try.log', 'd', 1)
[formatter_default]
format=%(asctime)s %(pathname)s(%(lineno)d): %(levelname)s %(message)s
Комментарии:
1.
import logging...logger = logging.getLogger('root')
нужно ли включать все файлы py для использования системы ведения журнала?2. куда мне нужно поместить mylog.conf? можно ли изменить имя файла? как mylog.py ?
3.
args=('try.log', 'd', 1)
-> 1 — это backupCount? 1 означает, что останется один файл (плюс текущий файл журнала try.log)?4. В третьей строке вашего примера отсутствует ‘config’. Это должно быть logging.config.fileConfig(‘log.conf’)