logger常用方法


#!/usr/bin/env python
# encoding: utf-8  
# Date: 2018/5/25


import logging
from logging import handlers
# 日志過濾
class IgnoreBackupLogFilter(logging.Filter):
    '''忽略帶db backup的日志'''
    def filter(self, record): # 固定寫法
        return 'db backup' in record.getMessage() # True False

# 1.生成logger對象
logger = logging.getLogger('web')
logger.setLevel(logging.DEBUG)

# 1.1 把filter對象添加到logger中
logger.addFilter(IgnoreBackupLogFilter())


# 2.生成handler對象
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
fh = logging.FileHandler('web.log')
# 日志切割 10字節 按照大小截取
# fh = handlers.RotatingFileHandler('web.log', maxBytes=10, backupCount=3)
# 日志切割 時間 按照時間截取
# fh = handlers.TimedRotatingFileHandler('web1.log', when='s', interval=5, backupCount=3)
fh.setLevel(logging.WARNING)

# 2.1 把handler對象綁定到logger
logger.addHandler(ch)
logger.addHandler(fh)

# 3.生成formatter對象

# 3.1 把formatter對象綁定handler對象
file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(lineno)d - %(message)s')

ch.setFormatter(console_formatter)
fh.setFormatter(file_formatter)

logger.warning('test warning')
logger.warning('test warning db backup')
logger.debug('test log')
logger.info('test log 2')






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM