loguru.logger.info 支持哪些参数,比如能去掉时间的显示吗。
loguru 库中的 logger.info 可以通过配置格式化来控制日志输出格式,包括是否显示时间。虽然 logger.info 本身不直接接受控制格式参数,但可以通过 logger 的 configure 方法来设置全局的日志格式。
以下是一个配置示例,展示了如何去掉时间显示:
from loguru import logger
# 配置日志格式
logger.configure(handlers=[{"sink": sys.stdout, "format": "{message}"}])
# 使用 logger.info 记录日志
logger.info("这是一条日志消息,没有时间显示。") 在这个配置中,通过 logger.configure 设置了一个新的处理器 (handler),并定义了其格式 (format) 只包含 {message},这样就去掉了时间、日志级别等信息,仅输出日志消息内容。
当然,loguru 的格式化功能非常灵活,你可以根据需求自定义各种格式,比如包含时间及其它信息。以下是保留默认格式并增加自定义内容的示例:
from loguru import logger
import sys
# 使用自定义格式,在消息前面添加一个固定字符串
logger.configure(handlers=[{"sink": sys.stdout, "format": "{level} - {message}"}])
# 记录日志
logger.info("这是一条带有日志级别的消息。") 常用的格式选项包括:
{elapsed}: 自程序开始运行的时间差{exception}: 异常信息{file}: 文件名{function}: 函数名{level}: 日志级别{line}: 行号{message}: 日志消息{module}: 模块名{name}: 记录器名{process}: 进程ID{thread}: 线程ID{time}: 当前时间你可以根据需求进行自由组合格式化日志信息。
怎么获取默认样式,这个处理方式会把颜色等其他东西都清空了
你说得很对。直接使用 logger.configure 时,如果只是为了简单地去掉某些信息而保留其他默认样式(包括颜色等),确实会有问题。loguru 的默认样式是比较复杂和精美的。
一种处理方式是直接在配置中使用 loguru 的默认格式,然后根据需求进行微调。
以下是获取默认格式和微调格式去掉时间的具体方法:
from loguru import logger
import sys
# 获取当前处理器默认格式
default_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
"<level>{message}</level>"
)
# 创建一个新的格式,但去掉时间部分
custom_format = (
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
"<level>{message}</level>"
)
# 配置日志格式
logger.configure(handlers=[{"sink": sys.stdout, "format": custom_format}])
# 记录日志
logger.info("这是一个没有时间显示的日志消息,但保留了其他默认样式。") 在上面的代码中,我首先创建了一个 default_format,它实际上是 loguru 的默认格式模板。然后我创建了一个 custom_format,去掉了时间显示部分,保留了其他样式。最后,通过 logger.configure 方法配置日志格式。
如果你不知道 loguru 库默认的格式,可以参考官方文档确认默认格式和样式。使用类似的方法,你可以根据需求保留或去掉其他信息。