• python 日志打印2


    import  logging
    from  logging.handlers import TimedRotatingFileHandler
    
    class Logger(object):
        def __init__(self):
            # 创建logger对象
            self.logger=logging.getLogger()#logging.getLogger(name)函数中的name是日志记录的用例名,不指定name会返回root对象
            self.logger.setLevel(logging.DEBUG)
            # logging.root.setLevel(logging.NOTSET) #NOTSET会显示所有输出
            self.log_file_name="E:/PyCharmWorkSpace/AutoInterfaceTest/log/testlog.log"
            self.backup_count=5
            self.console_output_level="INFO"
            self.file_output_level="DEBUG"
            self.formatter=logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s")
        def get_logger(self):
            #handler对象:日志对象用于输出日志,而Handler对象用于指定日志向哪里输出(文件、终端等等)
            # 常用handler对象:
            # 1.StreamHandler, 用于向标准输入输出流等输出日志  2.FileHandler,用于向文件输出日志
            # 3.NullHandler,什么也不输出 4.RotatingFileHandler,向文件输出日志,如果文件到达指定大小,创建新文件并继续输出日志。
    
            # 控制台日志
            console_handler = logging.StreamHandler()
            console_handler.setFormatter(self.formatter)
            console_handler.setLevel(self.console_output_level)
            self.logger.addHandler(console_handler)  #将控制台日志对象添加到logger
            # 文件日志
            # 每天重新创建一个日志文件,最多保留backup_count份
            file_handler = TimedRotatingFileHandler(filename=self.log_file_name,
                                                    when='D',
                                                    interval=1,
                                                    backupCount=self.backup_count,
                                                    delay=True,
                                                    encoding='utf-8')
            file_handler.setFormatter(self.formatter)
            file_handler.setLevel(self.file_output_level)
            self.logger.addHandler(file_handler)#将文件日志对象添加到logger
            return self.logger
    if __name__ == '__main__':
        log=Logger().get_logger()
        # 打印优先级:critical>error>warning>info>debug
        # 当等级为debug时,全部等级都能够打印出来,等级为info时,除了debug,其他都能够打印
        log.debug("debug信息,最低级别,一般开发人员用来打印一些调试信息")
        log.info("info信息,正常输出信息,一般用来打印一些正常的操作")
        log.warning("warning,一般用来打印警信息,默认等级为warning")
        log.error("error信息,一般用来打印一些错误信息")
        log.critical("critical信息,一般用来打印一些致命的错误信息,等级最高")
    
    logger=Logger().get_logger()
  • 相关阅读:
    vCenter6.7的简单安装与使用
    大家来找茬
    Android APP分享功能实现
    为免费app嵌入Admob广告
    Google Admob广告Android全攻略1
    开始Admob广告盈利模式详细教程
    android软件中加入广告实现方法
    onWindowFocusChanged重要作用 and Activity生命周期
    WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
    android之intent显式,显式学习
  • 原文地址:https://www.cnblogs.com/yangjr/p/12931888.html
Copyright © 2020-2023  润新知