zoukankan      html  css  js  c++  java
  • Python基础学习八 写日志

     1 import logging
     2 from logging import handlers
     3 
     4 
     5 class Logger(object):
     6     level_relations = {
     7         'debug': logging.DEBUG,
     8         'info': logging.INFO,
     9         'warning': logging.WARN,
    10         'error': logging.ERROR,
    11         'crit': logging.CRITICAL
    12     }  # 日志级别关系映射
    13 
    14     def __init__(self, fp, level='debug', when='midnight', interval=1, backCount=5, encoding='utf-8'):
    15         '''
    16 
    17         :param fp:日志文件路径
    18         :param level: 日志级别 默认是debug
    19         :param when: 分割日志的单位 S 秒、M 分、 H 小时、 D 天、 W 每星期(interval==0时代表星期一)、midnight 每天凌晨
    20         :param interval: 时间间隔 默认每天凌晨
    21         :param backCount: 备份文件个数 默认5个
    22         :param encoding: 日志文件编码
    23         '''
    24         self.level = self.level_relations.get(level)
    25         self.logger = logging.getLogger(fp)
    26         self.logger.setLevel(self.level)
    27         fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    28         sh = logging.StreamHandler()
    29         sh.setFormatter(fmt)
    30         sh.setLevel(self.level)
    31         th = handlers.TimedRotatingFileHandler(fp, when=when, interval=interval, backupCount=backCount,
    32                                                encoding=encoding)
    33         th.setFormatter(fmt)
    34         th.setLevel(self.level)
    35         self.logger.addHandler(th)
    36         self.logger.addHandler(sh)
    37 
    38     def debug(self, msg):
    39         self.logger.debug(msg)
    40 
    41     def info(self, msg):
    42         self.logger.info(msg)
    43 
    44     def warning(self, msg):
    45         self.logger.warning(msg)
    46 
    47     def error(self, msg):
    48         self.logger.error(msg)
    49 
    50     def crit(self, msg):
    51         self.logger.critical(msg)
    52 
    53 
    54 if __name__ == '__main__':
    55     l = Logger('a.log')  # 实例化
    56     l.info('hehehe')  # 调用
    57     l.debug('哈哈哈')
    58     l.error('xxx')
  • 相关阅读:
    android stagefright awesomeplayer 分析
    stagefright框架(七)-Audio和Video的同步
    stagefright框架(六)-Audio Playback的流程
    Windows Sockets Error Codes
    编译boost (windows msvc14)
    golang windows程序获取管理员权限(UAC ) via gocn
    阿里云容器服务--配置自定义路由服务应对DDOS攻击
    store / cache 系列
    一些项目感悟
    protobuf-3.0.0-beta-2 windows编译 x64/x86
  • 原文地址:https://www.cnblogs.com/louis-w/p/8532217.html
Copyright © 2011-2022 走看看