melobot.log

内置日志部件

class melobot.log.Logger[源代码]

基类:Logger, GenericLogger

melobot 内置日志器

推荐使用的日志器。实现了 GenericLogger 接口,因此可以用于 melobot 内部日志记录。

debug, info, warning, error, critical, exception 等接口与 logging.Logger 用法完全一致

__init__(name: str = 'melobot', /, level: LogLevel = LogLevel.INFO, file_level: LogLevel = LogLevel.DEBUG, to_console: bool = True, to_dir: str | None = None, add_tag: bool = False, legacy: bool = False, yellow_warn: bool = True, red_error: bool = True, two_stream: bool = False) None[源代码]

初始化日志器

参数:
  • name (str) -- 日志器的名称(唯一)

  • level (LogLevel) -- 日志等级

  • file_level (LogLevel) -- 日志文件的日志等级

  • to_console (bool) -- 是否输出到控制台

  • to_dir (str | None) -- 保存日志文件的目录,为空则不保存文件

  • add_tag (bool) -- 记录日志时是否标识日志器名称

  • legacy (bool) -- 记录日志时是否使用传统样式(不对日志内容进行自动高亮,而是使用日志等级的五色)

  • yellow_warn (bool) -- 记录 LogLevel.WARN 级别时,是否将日志内容着色为黄色。 legacy 选项为 True 时此参数无效

  • red_error (bool) -- 记录 LogLevel.ERROR 及以上级别时,是否将日志内容着色为红色。 legacy 选项为 True 时此参数无效

  • two_stream (bool) -- 当使用记录到文件功能时,是否分离“常规日志”和“错误日志”到不同的文件

返回类型:

None

set_level(level: LogLevel) None[源代码]

设置日志等级

日志等级自动应用于包含的所有 handler(但输出日志到文件的 handler 除外)

参数:

level (LogLevel) -- 日志等级

返回类型:

None

generic_lazy(msg: str, *arg_getters: Callable[[], str], level: LogLevel, with_exc: bool = False) None[源代码]

懒惰日志方法

参数:
  • msg (str) -- 日志消息,可使用 %s 指定稍后填充的参数

  • arg_getters (Callable[[], str]) -- 填充消息 %s 位置的填充函数

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 是否记录异常栈信息

返回类型:

None

generic_obj(msg: str, obj: T, *arg_getters: Callable[[], str], level: LogLevel = LogLevel.INFO) None[源代码]

记录对象的日志方法

参数:
  • msg (str) -- 附加的日志消息,可使用 %s 指定稍后填充的参数

  • obj (T) -- 需要被日志记录的对象

  • arg_getters (Callable[[], str]) -- 填充消息 %s 位置的填充函数

  • level (LogLevel) -- 日志等级

返回类型:

None

class melobot.log.LogLevel[源代码]

基类:int, Enum

日志等级枚举

CRITICAL = 50
DEBUG = 10
ERROR = 40
INFO = 20
WARNING = 30
melobot.log.get_logger() GenericLogger[源代码]

获取当前上下文中日志器

返回:

日志器

返回类型:

GenericLogger

通用日志部件与通用修补

class melobot.log.GenericLogger[源代码]

基类:BetterABC

通用日志器抽象类

任何日志器实现本类接口,或通过 logger_patch() 修补后, 即可兼容 melobot 内部所有日志操作(也就可以用于 bot 初始化 Bot.__init__()

abstract debug(msg: object) None[源代码]

debug 级别日志

参数:

msg (object)

返回类型:

None

abstract info(msg: object) None[源代码]

info 级别日志

参数:

msg (object)

返回类型:

None

abstract warning(msg: object) None[源代码]

warning 级别日志

参数:

msg (object)

返回类型:

None

abstract error(msg: object) None[源代码]

error 级别日志

参数:

msg (object)

返回类型:

None

abstract critical(msg: object) None[源代码]

critical 级别日志

参数:

msg (object)

返回类型:

None

abstract exception(msg: object) None[源代码]

记录异常信息的日志

参数:

msg (object)

返回类型:

None

abstract generic_lazy(msg: str, *arg_getters: Callable[[], str], level: LogLevel, with_exc: bool = False) None[源代码]

通用懒惰日志方法

参数:
  • msg (str) -- 日志消息,可使用 %s 指定稍后填充的参数

  • arg_getters (Callable[[], str]) -- 填充消息 %s 位置的填充函数

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 是否记录异常栈信息

返回类型:

None

abstract generic_obj(msg: str, obj: T, *arg_getters: Callable[[], str], level: LogLevel = LogLevel.INFO) None[源代码]

通用记录对象日志方法

参数:
  • msg (str) -- 附加的日志消息,可使用 %s 指定稍后填充的参数

  • obj (T) -- 需要被日志记录的对象

  • arg_getters (Callable[[], str]) -- 填充消息 %s 位置的填充函数

  • level (LogLevel) -- 日志等级

返回类型:

None

melobot.log.logger_patch(logger: Any, lazy_meth: LazyLogMethod) GenericLogger[源代码]

对指定的日志器进行修补操作,使其可以被用于 melobot 内部的日志记录

参数:
  • logger (Any) -- 任意已经实现 debug, info, warning, error, critical, exception 接口的日志器

  • lazy_meth (LazyLogMethod) -- 修补方法

返回类型:

GenericLogger

class melobot.log.LazyLogMethod[源代码]

基类:Protocol

__call__(msg: str, *arg_getters: Callable[[], Any], level: LogLevel, with_exc: bool = False) None[源代码]

懒惰日志抽象方法

继承并实现该类的 __call__ 方法,即可用于日志器修补

参数:
  • msg (str) -- 日志消息

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 输出时是否附加异常信息

  • arg_getters (Callable[[], Any])

返回类型:

None

class melobot.log.StandardPatch[源代码]

基类:LazyLogMethod

用于修补 logging.Logger 的日志修补

__init__(logger: Any) None[源代码]

初始化一个标准日志器修补

参数:

logger (Any) -- 标准日志器对象(logging.Logger

返回类型:

None

__call__(msg: str, *arg_getters: Callable[[], Any], level: LogLevel, with_exc: bool = False) None[源代码]

懒惰日志抽象方法

继承并实现该类的 __call__ 方法,即可用于日志器修补

参数:
  • msg (str) -- 日志消息

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 输出时是否附加异常信息

  • arg_getters (Callable[[], Any])

返回类型:

None

class melobot.log.LoguruPatch[源代码]

基类:LazyLogMethod

用于修补 loguru 日志器的日志修补

__init__(logger: Any) None[源代码]

初始化一个 loguru 日志器修补

参数:

logger (Any) -- loguru 日志器对象

返回类型:

None

__call__(msg: str, *arg_getters: Callable[[], Any], level: LogLevel, with_exc: bool = False) None[源代码]

懒惰日志抽象方法

继承并实现该类的 __call__ 方法,即可用于日志器修补

参数:
  • msg (str) -- 日志消息

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 输出时是否附加异常信息

  • arg_getters (Callable[[], Any])

返回类型:

None

class melobot.log.StructlogPatch[源代码]

基类:LazyLogMethod

用于修补 structlog 日志器的日志修补

__init__(logger: Any) None[源代码]

初始化一个 structlog 日志器修补

参数:

logger (Any) -- structlog 日志器对象

返回类型:

None

__call__(msg: str, *arg_getters: Callable[[], Any], level: LogLevel, with_exc: bool = False) None[源代码]

懒惰日志抽象方法

继承并实现该类的 __call__ 方法,即可用于日志器修补

参数:
  • msg (str) -- 日志消息

  • level (LogLevel) -- 日志等级

  • with_exc (bool) -- 输出时是否附加异常信息

  • arg_getters (Callable[[], Any])

返回类型:

None