给Django项目添加日志,需要在settings.py及views.py页面进行设置。
settings.py页面,添加代码:
BASE_LOG_DIR = os.path.join(BASE_DIR, "log") LOGGING = { 'version': 1, # 保留字 'disable_existing_loggers': False, # 禁用已经存在的logger实例 # 日志文件的格式 'formatters': { # 详细的日志格式 'standard': { # "format": "%(asctime)s - %(message)s", 'format': '日志级别:{levelname},生成时间: {asctime} ,模块:{module} ,进程:{process:d},' '线程:{thread:d} , 消息:{message}', 'style': '{', }, }, # 过滤器 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, # 处理器 'handlers': { # 默认的 'default': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切 'filename': os.path.join(BASE_LOG_DIR, "message.log"), # 日志文件 'maxBytes': 1024 * 1024 * 50, # 日志大小 50M 'backupCount': 3, # 最多备份几个 'formatter': 'standard', 'encoding': 'utf-8', }, }, 'loggers': { # 默认的logger应用如下配置 '': { 'handlers': ['default'], # 上线之后可以把'console'移除 'level': 'WARNING', 'propagate': True, # 向不向更高级别的logger传递 }, }, }
这里的loggers是整个日志配置的起点,负责配置日志级别及对应的处理器,并且还可以设置是否向更高级logger传递等。
另外,如果想更自动化些,可以在settings.py中添加如下代码:
if not os.path.exists(BASE_LOG_DIR): os.mkdir(BASE_LOG_DIR)
让系统在运行时自动创建日志文件夹
然后在views.py文件添加:
import logging # 生成一个名为collect的logger实例 logger = logging.getLogger(__name__)
在具体的方法中也可以添加日志记录代码:logger.error('sdsdfsdfsdfsd')。
然后打开日志文件即可看到日志信息。