Skip to main content
 首页 » 编程设计

python之如何在 Django 中配置 Python 日志记录模块

2025年05月04日32webabcd

我正在尝试使用 Python logging 模块为 Django 应用程序配置日志记录。我在我的 Django 项目的 settings.py 文件中放置了以下配置代码:

import logging 
import logging.handlers 
import os 
date_fmt = '%m/%d/%Y %H:%M:%S' 
log_formatter = logging.Formatter(u'[%(asctime)s] %(levelname)-7s: %(message)s (%(filename)s:%(lineno)d)', datefmt=date_fmt) 
log_dir = os.path.join(PROJECT_DIR, "var", "log", "my_app") 
log_name = os.path.join(log_dir, "nyrb.log") 
bytes = 1024 * 1024   # 1 MB 
if not os.path.exists(log_dir): 
  os.makedirs(log_dir) 
handler = logging.handlers.RotatingFileHandler(log_name, maxBytes=bytes, backupCount=7) 
handler.setFormatter(log_formatter) 
handler.setLevel(logging.DEBUG) 
logging.getLogger().setLevel(logging.DEBUG) 
logging.getLogger().addHandler(handler) 
logging.getLogger(__name__).info("Initialized logging subsystem") 

在启动时,我在日志文件中收到一些与 Django 相关的消息,以及“已初始化的日志子系统”,但是所有日志消息最终都转到了 Web 服务器日志 (/var/log/apache2/error.log,因为我使用的是 Apache),并使用标准日志格式(不是我指定的格式化程序)。我是否错误地配置了日志记录?

请您参考如下方法:

有点虎头蛇尾,但事实证明项目中安装了一个第三方应用程序,它有自己的日志记录配置,覆盖了我设置的配置(它修改了根记录器,出于某种原因——对于 Django 应用程序来说不是很符合标准!)。删除了该代码,一切都按预期工作。