美文网首页
logging模块

logging模块

作者: 火气大 | 来源:发表于2018-08-12 11:51 被阅读0次
     1 # 日志等级
     2 logging.debug() # 10
     3 logging.info()  # 20
     4 logging.warning()   # 30
     5 logging.error() # 40
     6 logging.critical()  # 50
     7 
     8 
     9 # logger对象:负责产生各种级别的日志
    10 log = logging.getLogger('name') # name 用来表示日志与什么业务有关
    11 log.info()
    12 log.error()
    13 ....
    14 
    15 # filter对象:过滤日志
    16 
    17 
    18 # handler对象:控制输出的目标
    19 s = logging.FileHandler('文件')
    20 s1 = logging.StreamHandler() # 终端
    21 
    22 # formatter对象:日志格式
    23 logging.Formatter()
    24 
    25 # 绑定logger与handler
    26 log.addHandler(s)
    27 log.addHandler(s1)
    28 
    29 # 绑定formatter与handler
    30 s.setFormatter(formatter)
    31 
    32 # logger产生日志
    33 log.info('aaa')
    

    日志模版

     1  # 定义日志输出格式
     2 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
     3                   '[%(levelname)s][%(message)s]'  # 其中name为getlogger指定的名字
     4 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
     5 
     6 id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
     7 
     8 
     9 # 如果不存在定义的日志目录就创建一个
    10 if not os.path.isdir(BASE_LOG):
    11     os.mkdir(BASE_LOG)
    12 
    13 # log文件的全路径
    14 logfile_path = os.path.join(BASE_LOG, 'log.log')
    15 
    16 # log配置字典
    17 LOGGING_DIC = {
    18     'version': 1,
    19     'disable_existing_loggers': False,
    20     'formatters': {
    21         'standard': {
    22             'format': standard_format
    23         },
    24         'simple': {
    25             'format': simple_format
    26         },
    27     },
    28     'filters': {},
    29     'handlers': {
    30         # 打印到终端的日志
    31         'console': {
    32             'level': 'DEBUG',
    33             'class': 'logging.StreamHandler',  # 打印到屏幕
    34             'formatter': 'simple'
    35         },
    36         # 打印到文件的日志,收集info及以上的日志
    37         'default': {
    38             'level': 'DEBUG',
    39             'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
    40             'formatter': 'standard',
    41             'filename': logfile_path,  # 日志文件
    42             'maxBytes': 1024 * 1024 * 5,  # 日志大小 5M
    43             'backupCount': 5,
    44             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
    45         },
    46 
    47     },
    48     'loggers': {
    49         # logging.getLogger(__name__)拿到的logger配置
    50         '': {
    51             'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
    52             'level': 'INFO',
    53             'propagate': True,  # 向上(更高level的logger)传递
    54         },
    55     },
    56 }
    

    相关文章

      网友评论

          本文标题:logging模块

          本文链接:https://www.haomeiwen.com/subject/rclsbftx.html