Python--日志模块

# 时间 哪一个文件里面的 第几行代码
import logging
from logging import handlers

# logging.debug('debug级别,最低级别,通常开发人员用来打印一些调试信息')
# logging.info('info级别,正常输出信息,通常用来打印一些正常的操做')
# logging.warning('waring级别,通常用来打印警信息')
# logging.error('error级别,通常用来打印一些错误信息')
# logging.critical('critical级别,通常用来打印一些致命的错误信息')
# 日志级别 debug < info < warning < error < critical
# logging.basicConfig(level=logging.ERROR,
# format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
# filename='a.log',
# filemode='a')
# logging.debug('我是debug')
# logging.info('我是info')
# logging.warning('我是warning')
# logging.error('我是error')
# logging.critical('我是critical')

logger = logging.getLogger() # 建立一个办公室
logger.setLevel(logging.DEBUG) # 设置日志级别
# 一个往屏幕上输出 StreamHandler
# 一个往文件写东西 TimedRotatingFileHandler
fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
st = logging.StreamHandler() # 实例化StreamHandler,至关于找一我的给你干活,往屏幕上输出
# 第一个参数是文件名,第二个参数when是隔多久生成一个日志,backupCount就是保存几个日志文件
th = handlers.TimedRotatingFileHandler(
'my.log', when='S', encoding='utf-8', backupCount=5
) # 实例化TimedRotatingFileHandler,至关于找一我的给你干活,往文件里面写东西
st.setFormatter(fmt)
th.setFormatter(fmt)
logger.addHandler(st)
logger.addHandler(th)
logger.debug('my_log debug信息')
logger.info('my_log info信息')
logger.warning('my_log warning信息')
logger.error('my_log error信息')
logger.critical('my_log critical信息')

# param when: 分割日志的单位 S 秒、M 分、 H 小时、 D 天、 W 每星期(interval==0时表明星期一)、midnight 天天凌晨



封装日志
import loggingfrom logging import handlersclass Logger(object):    # 日志级别关系映射    level_relations = {        'debug': logging.DEBUG,        'info': logging.INFO,        'warning': logging.WARNING,        'error': logging.ERROR,        'crit': logging.CRITICAL    }    def __init__(self, filename, level='info', when='D', back_count=3,                 fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):        self.logger = logging.getLogger(filename)        self.logger.setLevel(self.level_relations.get(level))  # 设置日志级别        format_str = logging.Formatter(fmt)        sh = logging.StreamHandler()        sh.setFormatter(format_str)        th = handlers.TimedRotatingFileHandler(filename=filename, when=when,                                               backupCount=back_count, encoding='utf-8')        th.setFormatter(format_str)        self.logger.addHandler(sh)        self.logger.addHandler(th)if __name__ == '__main__':    log = Logger('nhy.log')    log.logger.debug('i的是100')    log.logger.info('开机')    log.logger.warning('警告 飞机没油了')    log.logger.error('错误 飞机要爆炸')
相关文章
相关标签/搜索