【问题标题】:How to write to a specific log file from management command?如何从管理命令写入特定的日志文件?
【发布时间】:2012-06-19 05:48:06
【问题描述】:

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

logger = logging.getLogger(__name__)

谢谢

【问题讨论】:

  • management commands是什么意思?你只是想每天分割日志文件吗?

标签: django logging


【解决方案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 添加到命令记录器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多