django日志模块
- 日志模块工作流程
- 产生日志(日志实例)
- 渲染格式(格式化)
- 匹配过滤(过滤器)
- 持久化(处理器)
格式器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' } } }
入口点
建立django环境
def logdemo(): logger = logging.getLogger('django') logger.info('hello')