django log module
- Log Module Workflow
- Generating a log (log Example)
- Render format (format)
- Matching filter (filter)
- Persistence (processor)
Formatter formatter
Key words description asctime Time (2018-01-0123: 05: 15,000) threadName Thread name thread Thread id pathname Log file path funcName Print log function name lineno Print log lines levelname Print log level message Specific information log asctime pathname funName lineno levelname message
Processor handler
The log processing, such as: written documents, print screen
Filter filter
import logging class TestFilter(logging.Filter): def filter(self,record): if '----' in record.msg: return False # 会被过滤 else: return True # 会被打印
Log instance 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' } } }
Entry point
Django build environment
def logdemo(): logger = logging.getLogger('django') logger.info('hello')