簡體   English   中英

如何使用 Loguru 默認值 + 和額外信息?

[英]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 2022-02-03 15:16:54.920 | INFO | __main__:<module>:79 - XXX.XXX.XX.X - Use kwargs to add context during formatting: anybody 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。 使用默認配置(用於顏色和事物的 rest)並在格式中添加一些東西。

我正在嘗試訪問默認配置,但我無法導入它們並將它們與logger.add一起使用。 我想我將不得不從頭開始配置所有內容。

希望有人可以幫助我,謝謝。

我在Github 存儲庫中提出了同樣的問題,這是 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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM