django - 如何将 Django 日志配置为应用程序文件
问题描述
我正在努力使用 Django 日志记录配置。我有一个名为“api”的应用程序,我想保存该应用程序的所有日志以归档。当我为 django 设置一个记录器时,一切正常,但是当我将它更改为我的 app_name 时,它就不行了。这是我的配置:
文件结构:
email_api
api
tasks.py
email_api
celery.py
settings
logs
email.log
我的日志记录配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'logs/email.log',
},
},
'loggers': {
'api': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
我记录的tasks.py文件:
import logging
logger = logging.getLogger(__name__)
@app.task(bind=True, default_retry_delay=3, max_retries=3,)
def send_email(self, data, email_id):
message = create_message(data, email)
try:
logger.debug("Log Message Here")
message.send()
解决方案
中的键LOGGING['loggers'][...]
dict
是记录器的名称。您已将日志记录配置api
为记录器的名称。
为了写入此记录器,您应该使用该名称请求它:
logger = logging.getLogger('api')
...
logger.debug("Log Message Here")
推荐阅读
- java - 无法在中心对齐 HBox (JavaFX)
- r - 如果一行满足条件,则所有行都在 dplyr 中更改
- telnet - Telent 和命令在一行中
- ms-access - VBA - 多字段下拉框搜索查询
- javascript - 如何添加 req.user 来获取请求
- javascript - HTML 组合框弹出窗口上的 VBA 无法打开
- android - 我应该在旧笔记本电脑上使用哪个版本的 Android Studio?
- proxy - 如何使用 Traefik 作为自动旋转转发代理
- java - 如何将 5 个变量的块循环到 ArrayList - 块多次出现不同的值
- python - 应用随机森林后提取训练和测试的重要特征