python - 在 Python 记录器中使用变量控制的日志记录级别

标签 python logging dynamic user-defined log-level

我想编写一个函数来获取用户请求的日志记录级别,例如:

import logging

logger = logging.getLogger()

def func(log_level: <Type?>):
    logger.log_level("everything is bad")

这可以做到吗?

最佳答案

只需使用 log() method记录器的,它接受级别以及格式字符串和参数。

import logging

logger = logging.getLogger()

def func(log_level: int, message: str):
    logger.log(log_level, message)
    
logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s')

func(logging.DEBUG, 'message at DEBUG level')
func(logging.INFO, 'message at INFO level')
func(logging.CRITICAL, 'message at CRITICAL level')

哪个打印

DEBUG    message at DEBUG level
INFO     message at INFO level
CRITICAL message at CRITICAL level

运行时。

关于python - 在 Python 记录器中使用变量控制的日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70349012/

相关文章:

python - 如何使用openpyxl同时在一个工作簿中写两张纸

python - A* 搜索在 python 中不起作用

java - Log4J 问题 -> [ fatal error ] :1:1: Content is not allowed in prolog

javascript - 如果第一个输入最初为空,则在 keyup 的 2 个输入上使用相同的值

java - 根据数据库值动态加载jTable中的Image

Python 减去 Python Dataframe 的累积列

python - 脚本仅打印最终条目而不是删除重复项

logging - 通过 RSS 订阅 log4j 日志?

exception - 如何不在 Logback 中记录特定类型的异常?

python - 创建从字符串命名的类对象实例?