如何使用 Loguru defaults + 和 extra information?
How to use Loguru defaults + and extra information?
我仍在重新研究 Loguru,但我找不到一种简单的方法来做到这一点。我想使用 Loguru 的默认选项,我相信它们很棒,但我想向其中添加信息,我想添加将被记录的请求的 IP。
如果我尝试这样做:
import sys
from loguru import logger
logger.info("This is log info!")
# This is directle from Loguru page
logger.add(sys.stderr, format="{extra[ip]} {extra[user]} {message}")
context_logger = logger.bind(ip="192.168.0.1", user="someone")
context_logger.info("Contextualize your logger easily")
context_logger.bind(user="someone_else").info("Inline binding of extra attribute")
context_logger.info("Use kwargs to add context during formatting: {user}", user="anybody")
记录如下:
我知道使用 logger.remove(0)
我会删除默认日志,但我想用它来获得类似这样的东西:2022-02-03 15:16:54.920 | INFO | __main__:<module>:79 - XXX.XXX.XX.X - Use kwargs to add context during formatting: anybody
,XXX.XXX.XX.X 是 IP。使用默认配置(用于颜色和其他内容)并向格式添加一些内容。
我正在尝试访问默认配置,但我无法导入它们并将它们与 logger.add
一起使用。我想我将不得不从头开始配置所有内容。
希望有人能帮助我,谢谢。
我在 Github Repository 中提出了同样的问题,这是 Delgan(Loguru 维护者)的回答:
我认为您只需要 add()
您的处理程序使用包含额外信息的自定义格式。这是一个例子:
logger_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
"{extra[ip]} {extra[user]} - <level>{message}</level>"
)
logger.configure(extra={"ip": "", "user": ""}) # Default values
logger.remove()
logger.add(sys.stderr, format=logger_format)
额外:如果你想使用 TRACE 级别,请在添加配置时使用它:
logger.add(sys.stderr, format=logger_format, level="TRACE")
我仍在重新研究 Loguru,但我找不到一种简单的方法来做到这一点。我想使用 Loguru 的默认选项,我相信它们很棒,但我想向其中添加信息,我想添加将被记录的请求的 IP。
如果我尝试这样做:
import sys
from loguru import logger
logger.info("This is log info!")
# This is directle from Loguru page
logger.add(sys.stderr, format="{extra[ip]} {extra[user]} {message}")
context_logger = logger.bind(ip="192.168.0.1", user="someone")
context_logger.info("Contextualize your logger easily")
context_logger.bind(user="someone_else").info("Inline binding of extra attribute")
context_logger.info("Use kwargs to add context during formatting: {user}", user="anybody")
记录如下:
我知道使用 logger.remove(0)
我会删除默认日志,但我想用它来获得类似这样的东西:2022-02-03 15:16:54.920 | INFO | __main__:<module>:79 - XXX.XXX.XX.X - Use kwargs to add context during formatting: anybody
,XXX.XXX.XX.X 是 IP。使用默认配置(用于颜色和其他内容)并向格式添加一些内容。
我正在尝试访问默认配置,但我无法导入它们并将它们与 logger.add
一起使用。我想我将不得不从头开始配置所有内容。
希望有人能帮助我,谢谢。
我在 Github Repository 中提出了同样的问题,这是 Delgan(Loguru 维护者)的回答:
我认为您只需要 add()
您的处理程序使用包含额外信息的自定义格式。这是一个例子:
logger_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
"{extra[ip]} {extra[user]} - <level>{message}</level>"
)
logger.configure(extra={"ip": "", "user": ""}) # Default values
logger.remove()
logger.add(sys.stderr, format=logger_format)
额外:如果你想使用 TRACE 级别,请在添加配置时使用它:
logger.add(sys.stderr, format=logger_format, level="TRACE")