我有一个 Django 1.3 应用程序。我有几个管理命令。我希望每个命令都写入不同的日志文件,而不是在 settings.py 中定义的默认文件名。我每天将这些命令作为 cron 的一部分运行。我们当前的日志文件看起来像这里给出的示例https://docs.djangoproject.com/en/dev/topics/logging/。而且,我们使用
logger = logging.getLogger(__name__)
谢谢
我有一个 Django 1.3 应用程序。我有几个管理命令。我希望每个命令都写入不同的日志文件,而不是在 settings.py 中定义的默认文件名。我每天将这些命令作为 cron 的一部分运行。我们当前的日志文件看起来像这里给出的示例https://docs.djangoproject.com/en/dev/topics/logging/。而且,我们使用
logger = logging.getLogger(__name__)
谢谢
您需要通过为每个包添加一个记录器和一个处理程序来做到这一点:
'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
如果您不希望消息到达其他记录器,您可能还需要考虑添加到命令记录器。