«

python-loguru日志模块

发布于 阅读:72 教程


from loguru import logger

# 配置日志输出,包括自定义时间戳格式
logger.add("debug.log", rotation="1 day",filter=lambda record: record["level"].name == "DEBUG", format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message} | {extra}")
logger.add("info.log", rotation="1 day",filter=lambda record: record["level"].name == "INFO", format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message} | {extra}")
logger.add("warning.log", rotation="1 day",filter=lambda record: record["level"].name == "WARNING", format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message} | {extra}")
logger.add("error.log", rotation="1 day",filter=lambda record: record["level"].name == "ERROR", format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message} | {extra}")
logger.add("critical.log", rotation="1 day",filter=lambda record: record["level"].name == "CRITICAL", format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message} | {extra}")

def main():
    # 示例上下文信息
    user_id = 123
    request_ip = "192.168.1.1"

    # 使用 logger.bind() 绑定上下文信息
    log_with_context = logger.bind(user_id=user_id, request_ip=request_ip)

    # 示例日志信息,不再需要 extra 参数
    log_with_context.debug("这是一个调试消息")
    log_with_context.info("这是一个信息消息")
    log_with_context.warning("这是一个警告消息")
    log_with_context.error("这是一个错误消息")
    log_with_context.critical("这是一个严重消息")

if __name__ == "__main__":
    main()