美努力一分,生活就精彩一分 2021-10-16 10:33 采纳率: 54.5%
浏览 16
已结题

Django项目配置 logging提示缺少project模块

Traceback (most recent call last):
File "C:\Users\wumeng\AppData\Local\Programs\Python\Python38\lib\logging\config.py", line 384, in resolve
found = self.importer(used)
ModuleNotFoundError: No module named 'project'
django项目中配置logging时提示缺少project模块?怎么解决
代码如下


 
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,   #是否禁用已存在的日志器
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
    },
    'filters': {
        'special': {
            '()': 'project.logging.SpecialFilter',
            'foo': 'bar',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },    # 对日志进行过滤
    'handlers': {
        'console': {
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': ['special']
        }
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
        'myproject.custom': {
            'handlers': ['console', 'mail_admins'],
            'level': 'INFO',
            'filters': ['special']
        }
    }
}
 
  • 写回答

1条回答 默认 最新

  • 辉煌仪奇 2021-10-16 10:50
    关注

    这个我直接可以用的,你拿去试试

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
            # 日志格式
            'standard': {
                'format': '[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '
                          '[%(levelname)s]- %(message)s'},
            'simple': {  # 简单格式
                'format': '%(levelname)s %(message)s'
            },
        },
        # 过滤
        'filters': {
        },
        # 定义具体处理日志的方式
        'handlers': {
            # 默认记录所有日志
            'default': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'all-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,  # 文件大小
                'backupCount': 5,  # 备份数
                'formatter': 'standard',  # 输出格式
                'encoding': 'utf-8',  # 设置默认编码,否则打印出来汉字乱码
            },
            # 输出错误日志
            'error': {
                'level': 'ERROR',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'error-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,  # 文件大小
                'backupCount': 5,  # 备份数
                'formatter': 'standard',  # 输出格式
                'encoding': 'utf-8',  # 设置默认编码
            },
            # 控制台输出
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                # 'class': 'logging.handlers.RotatingFileHandler',
                'formatter': 'standard'
            },
            # 输出info日志
            'info': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(log_path, 'info-{}.log'.format(time.strftime('%Y-%m-%d'))),
                'maxBytes': 1024 * 1024 * 5,
                'backupCount': 5,
                'formatter': 'standard',
                'encoding': 'utf-8',  # 设置默认编码
            },
        },
        # 配置用哪几种 handlers 来处理日志
        'loggers': {
            # 类型 为 django 处理所有类型的日志, 默认调用
            'django': {
                'handlers': ['default', 'console', 'error'],
                'level': 'INFO',
                'propagate': False
            },
            # log 调用时需要当作参数传入
            'log': {
                'handlers': ['error', 'info'],
                'level': 'INFO',
                'propagate': True
            },
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月16日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值