3. logging 日志模块

1)日志输出(默认打印到终端)

# -*- coding:utf-8 -*-
import logging
logging.basicConfig(
    #filename='access.log', #设置打印到文件中,而不往屏幕上的
    #格式     时间   日志名称默认是root    日志级别    模块名称        日志信息
    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level = 10
)
logging.debug('debug')          #10
logging.info('info')            #20
logging.warning('warn')         #30
logging.error('error')          #40
logging.critical('critical')    #50

2)日志生及即打印步骤

.1 logger: 产生日志
.2 filter: 过滤,一般不用
.3 Handler: 接收logger传过来的日志,进行日志格式化,可以打印到终端也可以打印到屏幕
.4 Formatter:设置日志格式
.5 为handler绑定日志格式
.6 为logger绑定handler
.7 设置日志级别,可以在2个(logger,Handler)地方设置,但Handler设置的日志级别一定要别logger设置的日志级别高,否则没有意义

#1
logger1 = logging.getLogger('access')

#3
sh = logging.StreamHandler() #打印到终端
fh1 = logging.FileHandler('s1.log',encoding='utf-8')
fh2 = logging.FileHandler('s2.log',encoding='utf-8')

#4
formatter1 = logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',)
formatter2 = logging.Formatter(fmt='%(asctime)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p')
formatter3 = logging.Formatter(fmt='%(asctime)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p')

#5
sh.setFormatter(formatter1)
fh1.setFormatter(formatter2)
fh2.setFormatter(formatter3)

#6
logger1.addHandler(sh)
logger1.addHandler(fh1)
logger1.addHandler(fh2)

#7
logger1.setLevel(30)
sh.setLevel(10)
fh1.setLevel(10)
fh2.setLevel(10)

#打印
logger1.debug('debug')
logger1.info('info')
logger1.warning('warning')
logger1.error('error')
logger1.critical('50')

3)日志继承

一般日志继承没有一样,可通过 porpagate =False 来控制是否继承

import logging

logger1=logging.getLogger('root')
logger2=logging.getLogger('root.child1')
logger3=logging.getLogger('root.child1.child2')

sh=logging.StreamHandler() #打印到终端

formatter=logging.Formatter(
    fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
)

sh.setFormatter(formatter)

logger1.addHandler(sh)
logger2.addHandler(sh)
logger3.addHandler(sh)

logger1.setLevel(50)

logger1.debug('grandpa)
logger2.debug('father')
logger3.debug('son')
posted @ 2018-01-14 10:55  丢失固执  阅读(141)  评论(0编辑  收藏  举报