• django_logging


    django使用python自带的logging打印日志

    logging 是线程安全的,其主要由4部分组成:
    
    Logger 
    用户使用的直接接口,将日志传递给Handler
    Handler 
    控制日志输出到哪里,console,file… 
    一个logger可以有多个Handler
    Filter 
    控制哪些日志可以从logger流向Handler
    Formatter 
    控制日志的格式
    
    BASE_LOG_DIR = os.path.join(BASE_DIR, "log")
    LOGGING = {
        'version': 1,  # 保留字
        'disable_existing_loggers': False,  # 禁用已经存在的logger实例
        # 日志文件的格式
        'formatters': {
            # 详细的日志格式
            'standard': {
                'format': '[%(asctime)s][%(pathname)s %(module)s:%(lineno)d][%(levelname)s][%(message)s]'
            },
            # 简单的日志格式
            'simple': {
                'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
            },
        },
        # 过滤器
        'filters': {
            'require_debug_true': {
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        # 处理器
        'handlers': {
            # 默认的
            'default': {
                'level': 'DEBUG',
                'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切
                'filename': os.path.join(BASE_LOG_DIR, "cms.log"),  # 日志文件
                'maxBytes': 1024 * 1024 * 50,  # 日志大小 50M
                'backupCount': 3,  # 最多备份几个
                'formatter': 'standard',
                'encoding': 'utf-8',
            },
        },
        'loggers': {
           # 默认的logger应用如下配置
            '': {
                'handlers': ['default',],  # 上线之后可以把'console'移除
                'level': 'DEBUG',
                'propagate': True,  # 向不向更高级别的logger传递
            },
        },
    }
    #在setting里定义log配置
    

      

    import logging
    logger = logging.getLogger('default')
    
    logger.info('url:%s method:%s'% (request.path, request.method))
    
    
    #在业务代码中创建default handlers的实例
    #使用info级别输出日志
    

      

    [2019-03-15 10:03:51,033][E:Pythoncmsdeployviews.py views:27][INFO][url:/deploy/room_addconfig/ method:POST]
    #实际的日志输出
    

      

      

  • 相关阅读:
    确定比赛名次
    What Are You Talking About
    小兔的棋盘
    How Many Answers Are Wrong
    备份当前的ubuntu系统生成iso
    eclipse导入maven项目有时出现web.xml is missing的问题
    eclipse自动添加版权信息
    javac不是内部或外部命令
    linux目录权限
    python import error:no module named yaml
  • 原文地址:https://www.cnblogs.com/jabbok/p/10535418.html
Copyright © 2020-2023  润新知