Python中logging使用

基础使用

  • 在编码时我们经常会用到logging这个模块来实现一些日志的输出:
import logging

logging.info("Start_do_something")
try:
	do_something()
except Exception as err:
	logging.error("error: %s", err)
logging.info("End_do_something")

一般error()输出特定的错误信息,info()用于输出相应的辅助信息,让我们了解程序的执行状况。
还有debug(), warning()…

如何灵活配置?

  • 在网上找了好久也没有看到很详细的,最后找到几个的不错的自个又总结了一下形成本文。
import logging
import logging.config

LOGGING_CONFIG = {
    "version": 1,
    "formatters": {
        "default": {
            'format': '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s',
        },
        "plain": {
            "format": "%(message)s",
        },
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "INFO",
            "formatter": "default",
        },
        "console_plain": {
            "class": "logging.StreamHandler",
            "level": logging.INFO,
            "formatter": "plain"
        },
        "file": {
            # "class": "logging.FileHandler",
            'class': 'logging.handlers.RotatingFileHandler',
            "level": 20,
            "filename": "./logs/error_log.log",
            "formatter": "default",
            "maxBytes": 30 * 1024 * 1024,
            "backupCount": 5,
            "encoding": 'utf-8'
        }
    },
    "loggers": {
        "console_logger": {
            "handlers": ["console"],
            "level": "INFO",
            "propagate": False,
        },
        "console_plain_logger": {
            "handlers": ["console_plain"],
            "level": "DEBUG",
            "propagate": False,
        },
        "file_logger": {
            "handlers": ["file"],
            "level": "INFO",
            "propagate": False,
        }
    },
    "disable_existing_loggers": True,
}
#  在别处可以直接引用过去设置logger即可
logging.config.dictConfig(LOGGING_CONFIG)
my_logger = logging.getLogger("file_logger")
my_logger.info("something...")
  • 想要输出traceback。加上 exc_info=True 来输出异常:
    my_logger.info("something...", exc_info=True)
    
  • 很多字段的详情内容可参阅源码和官方文档
  • Reference

    https://blog.csdn.net/u010099080/article/details/103769461
    https://docs.python.org/3.7/library/logging.config.html
    https://cloud.tencent.com/developer/article/1772559

你可能感兴趣的:(Python,python,开发语言,后端)