账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django log日志模块无法正常工作,记录日志信息
    48
    0

    背景描述:

    使用gunicorn +django +nginx部署,

    在指定目录会自动创建info.log ,error.log,warn.log

    屏幕上可以正常显示日志信息

    没有往日志文件写入信息

    使用runserver启动服务,日志可以正常书写

    import os
    
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    BASE_LOG_DIR = os.path.join(BASE_DIR, "log")
    
    LOGGING = {
        'version': 1, 
        'disable_existing_loggers': False,  
        'formatters': {
            'standard': { 
                'format': '%(levelname)s %(asctime)s %(module)s %(message)s'
            },
            'error': {
                'format': '%(levelname)s %(asctime)s %(pathname)s %(module)s %(message)s'
            },
            'simple': {  
                'format': '%(levelname)s %(asctime)s %(message)s'
            },
            'collect': {  
                'format': '%(message)s'
            }
        },
        
        'filters': {
            # 只有在deubg=True的过滤器
            'require_debug_true': {
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
      
        'handlers': {
           
            'console': {
                'level': 'DEBUG',
                'filters': ['require_debug_true'],  
                'class': 'logging.StreamHandler', 
                'formatter': 'simple'
            },
            
            'default': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler', 
                'filename': os.path.join(BASE_LOG_DIR, "info.log"), 
                'maxBytes': 1024 * 1024 * 50,  
                'backupCount': 5, 
                'formatter': 'standard',
                'encoding': 'utf-8',
            },
    
            'warn': {
                'level': 'WARN',
                'class': 'logging.handlers.RotatingFileHandler',  
                'filename': os.path.join(BASE_LOG_DIR, "warn.log"),  
                'maxBytes': 1024 * 1024 * 50,  
                'backupCount': 5,
                'formatter': 'standard',
                'encoding': 'utf-8',
            },
    
            'error': {
                'level': 'ERROR',
                'class': 'logging.handlers.RotatingFileHandler',  
                'filename': os.path.join(BASE_LOG_DIR, "error.log"), 
                'maxBytes': 1024 * 1024 * 50, 
                'backupCount': 5,
                'formatter': 'error',
                'encoding': 'utf-8',
            },
        },
    
        'loggers': {
            '': {
                'handlers': ['default', 'warn', 'error'],  
                'level': 'DEBUG',
                'propagate': True,  
            },
            'collect': {
                'handlers': ['console', 'default', 'warn', 'error'],
                'level': 'INFO',
            }
        },
    }

    setting.py

    from logger import LOGGING

    views.py

    import logging
    
    
    logger = logging.getLogger(__name__)
    
    class RandomImagination(APIView):
        def post(self, request):
            logger.info(u'路径:{} 用户id:{}'.format(request.path, user_id, result_dict['msg']))
            return Response({'status':100})
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤独的像条野狗 普通会员 1楼

      Django的log日志模块如果无法正常工作,可能有以下几个原因:

      1. log设置错误:请确保你已经正确配置了log模块的设置,包括日志级别、日志文件的位置等。

      2. 记录文件不存在:请确保日志文件存在,否则log模块将无法记录日志信息。

      3. log日志模块版本不兼容:请确保你的Django版本和log日志模块版本兼容。

      4. 记录内容错误:请检查日志记录的内容是否正确,例如日期、时间、日志级别、日志级别消息等。

      5. 网络问题:请检查网络连接是否正常,例如是否连接到正确的服务器或网络。

      6. Django版本问题:请确保你的Django版本和log日志模块版本兼容。

      如果以上问题都无法解决,建议你检查log日志模块的文档,或者寻求专业的技术支持。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部