如何从管理命令写入特定的日志文件?

时间:2012-06-19 05:48:06

标签: django logging

我有一个Django 1.3应用程序。我有几个管理命令。我希望每个命令写入不同的日志文件,而不是settings.py中定义的默认文件名。我每天都将这些命令作为cron的一部分运行。我们当前的日志文件看起来像这里给出的示例https://docs.djangoproject.com/en/dev/topics/logging/。而且,我们使用

logger = logging.getLogger(__name__)

由于

1 个答案:

答案 0 :(得分:1)

您需要通过为每个包添加记录器和处理程序来完成此操作:

'handlers': {
    'my_command_handler': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': '/path/to/my_command_log',
     },
     ...
},
'loggers': {
     'my_pkg.management.commands.my_command': {
         'level': 'DEBUG',
         'handlers': ['my_command_handler'],
     },
     ...
 }

如果您不希望邮件转到其他记录器,您可能还需要考虑将'propagate': False添加到命令记录器中。

相关问题