• python习题:生成日志文件


    import logging

    from logging import handlers
    class Logger(object):
        level_relations = {
            'debug':logging.DEBUG,
            'info':logging.INFO,
            'warning':logging.WARN,
            'error':logging.ERROR,
            'crit':logging.CRITICAL
        }#日志级别关系映射
        def __init__(self,fp,level='debug',when='midnight',interval=1,backCount=5,encoding='utf-8'):
            '''
     
            :param fp:日志文件路径
            :param level: 日志级别 默认是debug
            :param when: 分割日志的单位 S 秒、M 分、 H 小时、 D 天、 W 每星期(interval==0时代表星期一)、midnight 每天凌晨
            :param interval: 时间间隔 默认每天凌晨
            :param backCount: 备份文件个数 默认5个
            :param encoding: 日志文件编码
            '''
            self.level = self.level_relations.get(level)
            self.logger = logging.getLogger(fp)
            self.logger.setLevel(self.level)
            fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
            sh = logging.StreamHandler()
            sh.setFormatter(fmt)
            sh.setLevel(self.level)
            th = handlers.TimedRotatingFileHandler(fp,when=when,interval=interval,backupCount=backCount,encoding=encoding)
            th.setFormatter(fmt)
            th.setLevel(self.level)
            self.logger.addHandler(th)
            self.logger.addHandler(sh)
        def debug(self,msg):
            self.logger.debug(msg)
        def info(self,msg):
            self.logger.info(msg)
        def warning(self,msg):
            self.logger.warning(msg)
        def error(self,msg):
            self.logger.error(msg)
        def crit(self,msg):
            self.logger.critical(msg)
    if __name__ == '__main__':
        l = Logger('a.log')#实例化
        l.info('hehehe')#调用
  • 相关阅读:
    C++入门经典-例5.19-指针的引用与传递参数
    C++入门经典-例5.18-通过引用交换数值
    C++入门经典-例5.17-右值引用的定义
    C++入门经典-例5.16-输出引用
    C++入门经典-例5.15-回收动态内存的一般处理步骤
    C++入门经典-例5.14-丢失的内存,关于内存泄漏
    C++入门经典-例5.13-内存安全,被销毁的内存
    C++入门经典-例5.12-动态内存的销毁
    C++入门经典-例5.11-动态分配空间,堆与栈
    C++入门经典-例5.10-指针作为返回值
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8488120.html
Copyright © 2020-2023  润新知