zoukankan      html  css  js  c++  java
  • 封装好日志的类 logging


    import
    logging from logging import handlers class MyLogger(): def __init__(self,file_name,level='info',backCount=5,when='D'): #默认参数level级别是字典的value,bacuCount为5个,默认按D天生成,这样在实例化时,默认可以只传一个filename logger = logging.getLogger() # 先实例化一个logger对象,先创建一个办公室 logger.setLevel(self.get_level(level)) # 设置日志的级别的人 cl = logging.StreamHandler() # 负责往控制台输出的人 bl = handlers.TimedRotatingFileHandler(filename=file_name, when=when, interval=1, backupCount=backCount, encoding='utf-8') fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s') cl.setFormatter(fmt) # 设置控制台输出的日志格式 bl.setFormatter(fmt) # 设置文件里面写入的日志格式 logger.addHandler(cl) logger.addHandler(bl) self.logger = logger def get_level(self,str): #定义level的级别 level = { 'debug':logging.DEBUG, 'info':logging.INFO, 'warn':logging.WARNING, 'error':logging.ERROR } str = str.lower() #将str都转化成小写 return level.get(str)

    因此,封装好后,可以直接实例化并调用:

    logs = MyLogger(date.log','dubug')

    logs.logger.warning(‘这个bug级别是debug级别。。。’)

    控制台输出:

    生成的日志文件:(因为设置的when是D,按天生成的)

  • 相关阅读:
    gcc 编译
    UltraEdit 添加到右键菜单
    linux 编译错误:undefined reference to `__gxx_personality_v0'
    UltraEdit 取消生成.bak文件
    容器
    Windows CEvent事件
    Windows _beginthreadex 线程类与线程池
    C++ 工厂模式
    Mutex linux线程锁
    windows CRITICAL_SECTION 线程锁
  • 原文地址:https://www.cnblogs.com/fancyl/p/9105726.html
Copyright © 2011-2022 走看看