zoukankan      html  css  js  c++  java
  • logging模块

     1 '''
     2 import logging
     3 
     4 # 1. 控制日志级别
     5 # 2. 控制日志格式
     6 # 3. 控制输出的目标为文件
     7 logging.basicConfig(filename='access.log',
     8                     format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
     9                     datefmt='%Y-%m-%d %H:%M:%S %p',
    10                     level=10,
    11                     )
    12 
    13 logging.debug('debug日志') # 10
    14 logging.info('info日志')   # 20
    15 logging.warning('warning日志') #30
    16 logging.error('error日志')#40
    17 logging.critical('critical日志') #50
    18 
    19 # 火警的级别
    20 
    21 # 大功率电器
    22 # 抽烟
    23 # 烧烤
    24 
    25 
    26 
    27 '''
    28 # 1. 能够同时往终端与文件中记录日志
    29 # 2. 能够修改字符串编码
    30 
    31 import logging
    32 
    33 # 1. logger对象: 负责生产各种级别的日志
    34 logger1 = logging.getLogger('用户交易')  # 日志名用来标识日志的与什么业务有关
    35 
    36 # 2. filter对象: 过滤日志
    37 
    38 # 3. handler对象: 控制日志输出目标位置
    39 fh1 = logging.FileHandler('a1.log',encoding='utf-8')
    40 fh2 = logging.FileHandler('a2.log',encoding='utf-8')
    41 ch = logging.StreamHandler()
    42 
    43 # 4. formmater对象
    44 formatter1 = logging.Formatter(
    45     fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
    46     datefmt='%Y-%m-%d %H:%M:%S %p'
    47 )
    48 
    49 formatter2 = logging.Formatter(
    50     fmt='%(asctime)s - %(levelname)s :  %(message)s',
    51     datefmt='%Y-%m-%d %H:%M:%S %p'
    52 )
    53 
    54 # 5. 绑定logger对象与handler对象
    55 logger1.addHandler(fh1)
    56 logger1.addHandler(fh2)
    57 logger1.addHandler(ch)
    58 
    59 # 6. 绑定handler对象与formatter对象
    60 
    61 fh1.setFormatter(formatter1)
    62 fh2.setFormatter(formatter1)
    63 ch.setFormatter(formatter2)
    64 
    65 # 7. 设置日志级别,有logger对象与handler对象两层关卡,必须都放行最终日志才会放行,通常二者级别相同
    66 logger1.setLevel(10)
    67 fh1.setLevel(10)
    68 fh2.setLevel(10)
    69 ch.setLevel(10)
    70 
    71 # 8. 使用logger对象产生日志
    72 logger1.info('alex给egon转账1个亿')
    基本使用
     1 standard_format = '%(asctime)s - task:%(name)s - %(filename)s:%(lineno)d -' 
     2                   ' %(levelname)s : [%(message)s]'
     3 
     4 simple_format = '%(filename)s:%(lineno)d - %(levelname)s : [%(message)s]'
     5 
     6 fh1_path = r'a1.log'
     7 fh2_path = r'a2.log'
     8 
     9 # log配置字典
    10 LOGGING_DIC = {
    11     'version': 1,
    12     'disable_existing_loggers': False,
    13     'formatters': {
    14         'standard': {
    15             'format': standard_format
    16         },
    17         'simple': {
    18             'format': simple_format
    19         },
    20     },
    21     'filters': {},
    22     'handlers': {
    23         #打印到终端的日志
    24         'ch': {
    25             'level': 'DEBUG',
    26             'class': 'logging.StreamHandler',  # 打印到终端
    27             'formatter': 'simple'
    28         },
    29         #打印到a1.log文件的日志
    30         'fh1': {
    31             'level': 'DEBUG',
    32             'class': 'logging.FileHandler',  # 保存到文件
    33             'formatter': 'standard',
    34             'filename': fh1_path,  # 日志文件的路径
    35             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
    36         },
    37         # 打印到a2.log文件的日志
    38         'fh2': {
    39             'level': 'DEBUG',
    40             'class': 'logging.FileHandler',  # 保存到文件
    41             'formatter': 'simple',
    42             'filename': fh2_path,  # 日志文件的路径
    43             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
    44         },
    45 
    46     },
    47     'loggers': {
    48         '': {
    49             'handlers': ['fh1', 'fh2', 'ch'],
    50             'level': 'DEBUG',
    51         },
    52     },
    53 }
    配置字典
    1 import logging.config
    2 from conf import settings
    3 
    4 def get_logger(name):
    5     logging.config.dictConfig(settings.LOGGING_DIC)
    6     logger1=logging.getLogger(name)
    7     return logger1
    定义函数
  • 相关阅读:
    8.10日报
    8.9日报
    8.8日报
    8.7日报
    《大道至简》读后感
    8.6日报
    8.5日报
    8.4日报
    8.3日报
    8.2日报
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12014289.html
Copyright © 2011-2022 走看看