zoukankan      html  css  js  c++  java
  • python 的logging 的配置,有这一篇就够了

    参考 文章:https://www.cnblogs.com/nwpuxuezha/p/9038172.html

    python 自带

    
    import logging
    
    #输出的日志文件目录
    LOG_FILE_NAME = "logs/log.log"
    
    # 得到 logger 对象
    logger = logging.getLogger()
    
    
    # 初始化 logger
    def log_init():
        # 输出的格式
        formatter = logging.Formatter(
            fmt='%(asctime)s  %(filename)s  [line:%(lineno)d]  %(levelname)s :%(message)s',
            datefmt='%Y-%m-%d %H:%M:%S')
    
        #设置级别
        logger.setLevel(logging.DEBUG)
        
        #控制台的输出
        ch = logging.StreamHandler()
        ch.setFormatter(formatter)
    
        # log文件的记录
        fh = logging.FileHandler(LOG_FILE_NAME)
        fh.setFormatter(formatter)
    
        #将输出的流 添加给logger
        logger.addHandler(ch)
        logger.addHandler(fh)
    
    
    def test():
        logger.info("info")
        logger.error("error")
    
    if __name__ == "__main__":
        log_init()
        test()
    
    

    基于 YAML 的配置文件

    version: 1
    disable_existing_loggers: False
    formatters:
        simple:
            format: "%(asctime)s - %(filename)s - %(lineno)s - %(levelname)s - %(message)s"
    
    handlers:
        console:
            class: logging.StreamHandler
            level: INFO
            formatter: simple
            stream: ext://sys.stdout
    
        info_file_handler:
            class: logging.handlers.RotatingFileHandler
            level: INFO
            formatter: simple
            filename: logs/info.log
            maxBytes: 10485760 # 10MB
            backupCount: 20
            encoding: utf8
    
        error_file_handler:
            class: logging.handlers.RotatingFileHandler
            level: ERROR
            formatter: simple
            filename: logs/errors.log
            maxBytes: 10485760 # 10MB
            backupCount: 20
            encoding: utf8
    
        webdriver_handler:
            class: logging.handlers.RotatingFileHandler
            level: INFO
            formatter: simple
            filename: logs/webdriver.log
            maxBytes: 10485760 # 10MB
            backupCount: 20
            encoding: utf8
    
    loggers:
        webdriver_module:
            level: INFO
            handlers: [console]
            propagate: no
    
    root:
        level: INFO
        handlers: [console, info_file_handler, error_file_handler]
    
    
    
    
    import logging.config
    import os
    
    import yaml
    
    with open('logging.yaml') as f:
        if not os.path.exists('logs'):
            os.mkdir('logs')
        logging.config.dictConfig(yaml.safe_load(f.read()))
    
    
    def get_logging(name=None):
        if name:
            return logging.getLogger(name)
        return logging
    
    
    

    基于 JSON 的配置文件

  • 相关阅读:
    【复习+知识补充】EL表达式:只能调用静态方法
    【复习】sql语句的拼接 + 链接地址的简写
    淘淘商城maven工程的创建和svn的上传实现
    淘淘商城基于maven和svn的理解
    国家电力项目SSH搭建
    linux中权限的修改
    chown -R命令的使用
    修改nginx的访问目录以及遇到的403错误修改总结
    nginx的在linux系统中的安装
    集群环境的图片的访问和存储
  • 原文地址:https://www.cnblogs.com/xibanqiu/p/13815062.html
Copyright © 2011-2022 走看看