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')
  • 相关阅读:
    UWP&WP8.1 基础控件——Grid
    UWP&WP8.1 基础控件——Border
    UWP&WP8.1 基础控件——Image
    UWP&WP8.1 基础控件—Button
    UWP&WP8.1 基础控件—TextBlock和TextBox
    UWP &WP8.1 依赖属性和用户控件 依赖属性简单使用 uwp添加UserControl
    UWP_开源小程序 水印添加器
    UWP&WP8.1 附加属性 和WebView的NavigateToString方法XAML绑定方法
    Sql Server 中锁的概念
    MSSQL 查询表空间
  • 原文地址:https://www.cnblogs.com/louis-w/p/8532217.html
Copyright © 2011-2022 走看看