您的位置:

对于django错误ValueError("Bad message level string: `%s`. Possible values are: %s"% (level, levels_repr))的解决

  发布时间:2023-03-08 08:20:34
报错的原因这个错误提示通常是由于你在使用 Django 的 logging 模块时,提供了一个无效的日志级别。Django 的 logging 模块支持多种日志级别,包括和 "critical"。举个例子,如果你这么调用 logging.error() 函数你会得到这样的错误提示解决方法是检查你的代码,确保你传入的日志级别是合法的。具体来说,你可以避免使用不在 Django 支持的日志级别列表中的任何字符串,而只使用 Django 支持的日志级别,即和 "critical"。例如,你可以这样调用 logging.error() 函数这样就不会出现上述错误提示了。

报错的原因

这个错误提示通常是由于你在使用 Django 的 logging 模块时,提供了一个无效的日志级别。

Django 的 logging 模块支持多种日志级别,包括 "debug"、"info"、"warning"、"error" 和 "critical"。如果你传入了一个不在这个范围内的日志级别,就会看到这个错误提示。

举个例子,如果你这么调用 logging.error() 函数:


logging.error("An error occurred", level="invalid_level")

你会得到这样的错误提示:


ValueError("Bad message level string: `invalid_level`. Possible values are: ['debug', 'info', 'warning', 'error', 'critical']")

解决方法是检查你的代码,确保你传入的日志级别是合法的。

如何解决

解决这个问题的方法很简单:只需确保你在调用 logging 函数时传入的日志级别是合法的即可。

具体来说,你可以避免使用不在 Django 支持的日志级别列表中的任何字符串,而只使用 Django 支持的日志级别,即 "debug"、"info"、"warning"、"error" 和 "critical"。

例如,你可以这样调用 logging.error() 函数:


logging.error("An error occurred", level="error")

这样就不会出现上述错误提示了。

当然,你也可以选择不传入日志级别,让 logging 模块使用默认的日志级别:


logging.error("An error occurred")

在这种情况下,logging 模块会使用默认的 "error" 日志级别。

使用例子

以下是一个使用 Django 的 logging 模块的例子:


import logging

# 将日志输出到控制台
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")

在上面的例子中,我们使用了五种不同的日志级别:"debug"、"info"、"warning"、"error" 和 "critical"。我们还使用了 basicConfig() 函数来配置日志输出的格式和级别。

这个例子会在控制台输出五条日志消息,每条消息的日志级别都是我们在调用 logging 函数时所指定的。

希望这个例子对你有帮助。