日志记录-loguru

发布时间 2023-08-31 09:11:32作者: 徐俊112

 

Loguru 是一个强大而易于使用的日志记录库,logger.add() 方法用于向 Loguru logger 添加处理程序。下面是 logger.add() 方法的所有参数及其用法说明:

  1. sink:指定日志消息的目标输出位置。可以是文件名字符串或一个可调用对象。例如:

    • 'my.log':将日志写入到名为 my.log 的文件中。
    • sys.stdout.write:将日志消息输出到标准输出。
  2. format:指定日志记录的格式。可以是一个字符串,其中包含各种占位符和格式化选项。例如:

    • '{time} - {level} - {message}':指定日志消息的格式为时间、日志级别和消息内容。
  3. level:指定要记录的最低日志级别。只有达到或超过此级别的日志才会被记录。可以是字符串或整数值。例如:

    • 'DEBUG':记录所有日志级别,包括 'DEBUG''INFO''WARNING''ERROR' 和 'CRITICAL'
    • 2020 对应的日志级别是 'INFO',只记录 'INFO''WARNING''ERROR' 和 'CRITICAL' 级别的日志。
  4. filter:指定一个过滤器函数,用于决定是否记录特定的日志消息。过滤器函数接受一个日志记录器实例(logger)和日志消息(record)作为参数,并返回一个布尔值。例如:

     
    def custom_filter(logger, record):
        return record["level"].name == "WARNING"

     

  5. enqueue:指定是否在日志消息上使用队列进行处理。默认情况下为 True,启用队列处理。

  6. colorize:指定是否对日志消息进行颜色编码以进行区分。默认情况下为 True,启用颜色编码。

  7. serialize:指定是否对日志消息进行序列化。默认情况下为 True,启用序列化。

  8. backtrace:指定是否包括完整的回溯信息,当发生错误时,默认为 False

  9. diagnose:指定是否诊断捕获异常时显示所有已注册的处理程序。默认为 False

  10. catch:指定是否在记录器中处理其他未处理的异常。默认为 True,启用处理。

  11. format_datetime:自定义 DateTime 格式化选项。

  12. rotation:指定日志文件滚动(轮转)的选项。可以是字符串或一个 loguru.rotation.Rotation 实例。

  13. compression:指定日志文件是否应在滚动时进行压缩。默认为 False,不压缩。

  14. retention:指定保留的日志文件数量(滚动文件)。可以是天数(整数),也可以是字符串格式的天数(例如 '7 days')。

  1. encoding:指定日志文件的编码类型。默认为 'utf-8'

  2. delay:指定日志文件是否应立即创建。默认为 False,立即创建。

示例:

logger.add(sink=r'D:\wx\logfile\info\info.log',
           rotation='00:00',
       retention='30 day', # 保存30天 format="{time:YYYY-MM-DD HH:mm:ss} {level} {message}", level="INFO", encoding='utf-8', filter=lambda record: record["level"].name == "INFO")