Как я могу получить вывод журнала из моих пользовательских команд Django в журналы Apache?
В settings.py у меня есть регистратор, настроенный на вход в консоль, поскольку я нашел единственный способ заставить приложение Django записывать журналы в журнал Apache. Однако, если я затем использую регистратор приложений в команде Django и запускаю эту команду из командной строки (например, python manage.py my_command
), настройка ведения журнала записывает данные в реальную консоль, а не в журнал Apache.
Могу ли я настроить ведение журнала по-другому или даже вызвать команду Django по-другому, чтобы запись журнала команды записывалась в журнал Apache?
settings.py фрагмент журнала:
'handlers' : {
'console':{ #this logs to the Apache log when called from within the Django app e.g. from within views.py
'level':'INFO',
'class':'logging.StreamHandler',
'formatter':'standard',
}
}
....
'loggers' : {
'app_logger': {
'handlers': ['console'],
'level':'DEBUG',
}
}
фрагмент my_command.py:
....
class Command(BaseCommand):
....
def handle(self, *args, **options):
# do some useful work here
log = logging.getLogger("app_logger")
# when called from the command line, this statement is logged back to the console, not the Apache log
log.info("something happened")