Django日志模块配置

django日志模块

  • 日志模块工作流程

    1. 产生日志(日志实例)
    2. 渲染格式(格式化)
    3. 匹配过滤(过滤器)
    4. 持久化(处理器)
  • 格式器formatter

    关键词 描述
    asctime 时间(2018-01-01 23:05:15,000)
    threadName 线程名字
    thread 线程id
    pathname 日志的文件路径
    funcName 打印日志的函数名字
    lineno 打印日志的代码行
    levelname 日志打印级别
    message 日志的具体信息

    asctime pathname funName lineno levelname message

  • 处理器handler

    对日志进行处理,比如:写进文件,打印屏幕

  • 过滤器filter

    import logging
    class TestFilter(logging.Filter):
    	def filter(self,record):
    		if '----' in record.msg:
    			return False   # 会被过滤
    		else:
    			return True	  # 会被打印
    
  • 日志实例logger

    LOGGING = {
        'version':1,
    	'formatters':{
    		'standard':{
    			'format':'%(asctime)s [%(threadName)s: %(thread)d]'
    					'%(pathname)s':%(funcName)s:%(lineno)d]%(levelname)s-%(message)s'
    		}
    	},
    	'filters':{
            'test':{
                '()':'过滤器TestFilter路径',
            }
    	},
    	'handlers':{
    		# 终端处理器
    		'console_handler':{
    			'level':'INFO',
    			'class':'logging.StreamHandler',
    			'formatter':'standard'
    		},
    		# 文件处理器
    		'file_handler':{
    			'level':'DEBUG',
    			'class':'logging.handlers.RotatingFileHandler',
                'filename':os.path.join(LOG_DIR,'backend.log')
    			'maxBytes':'1024*1024*1024' # class参数如果日志大小超了会新建文件
    			'formatter':'standard',
                'encoding':'utf-8'
    		}
    	},
        'loggers':{
            'django':{
                'handlers':['console_handler','file_handler'],
                'filters':['test'],
                'level':'DEBUG'
            }
        }
    }
    
    • 入口点

      1. 建立django环境

      2. def logdemo():
        	logger = logging.getLogger('django')
        	logger.info('hello')
        
posted @ 2019-07-14 16:44  Jimmyhe  阅读(545)  评论(0)    收藏  举报