logging模块yaml配置

普通logging.conf配置

yaml文件配置logging.yaml

version: 1

disable_existing_loggers: False

formatters:
    simple:
        format: "%(asctime)s [%(name)s] [%(levelname)s] :%(levelno)s: %(message)s"
        datefmt: '%F %T'

handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: simple
        stream: ext://sys.stdout
    info_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: INFO
        formatter: simple
        filename: info.log
        maxBytes: 10485760 # 10MB
        backupCount: 20 #most 20 extensions
        encoding: utf8
    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR
        formatter: simple
        filename: errors.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8
root:
    level: INFO
    handlers: [console, info_file_handler]

使用yaml配置文件

# -*- coding=utf-8 -*-import os
import logging.config
import os
import yaml

def setup_logging(default_path='logging.yaml', default_level=logging.INFO):
    """
    Setup logging configuration
    """
    path = default_path
    if os.path.exists(path):
        with open(path, 'rt') as f:
            config = yaml.load(f.read())
        logging.config.dictConfig(config)
    else:
        logging.basicConfig(level=default_level)
        print('the input path doesn\'t exist')


if '__main__' == __name__:
    setup_logging(default_path='logging.yaml')
    # 默认拿到root的logger
    logger = logging.getLogger()
    logging.info('jhaha', exc_info=True)

运行结果分别在log文件和控制台中输出

 

转自https://blog.csdn.net/a469357594/article/details/79024907

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Python中,可以使用logging模块来记录日志信息,方便程序员在开发和生产环境中进行调试和问题排查。logging模块提供了全局配置方法,可以通过配置来控制日志的格式、输出方式和级别等。 下面是一个简单的例子,展示如何使用logging模块进行全局配置: ``` import logging # 配置日志格式 formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') # 创建一个StreamHandler,用于输出到控制台 console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) # 创建一个FileHandler,用于输出到文件 file_handler = logging.FileHandler('example.log') file_handler.setFormatter(formatter) # 创建一个Logger实例 logger = logging.getLogger('example') logger.setLevel(logging.DEBUG) # 将StreamHandler和FileHandler添加到Logger实例中 logger.addHandler(console_handler) logger.addHandler(file_handler) ``` 在上面的例子中,首先创建了一个Formatter对象,用于配置日志的格式。然后,创建了一个StreamHandler和FileHandler,分别用于将日志输出到控制台和文件中。接下来,创建了一个Logger实例,并设置了日志级别为DEBUG。最后,将StreamHandler和FileHandler添加到Logger实例中。 通过全局配置,可以方便地控制日志的输出方式和级别。在程序中,只需要使用logger对象来记录日志即可,例如: ``` logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 通过上述配置,日志信息将输出到控制台和文件中,并且可以根据需要调整日志级别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值