Logging 包概述

此章节包含 Julia 中和 logging 相关的一些包的概述。大部分的包和来自 Base 的标准 logging 前端宏 @debug@info@warn, @errorLogging.jl 标注库提供的抽象整合在一起。

Note

如果一些 logging 相关的包不在下列列表中,不要犹豫,请立刻把它添加进来。 (译注:请至原文添加)。

Logging.jl

Logging 标准库提供了很多 logging 基础设施,大多数其他的 logging 包都建立在它的基础上。Logging 提供了global_loggerwith_logger 来设置全局/局部(global/local)日志记录器,AbstractLogger 接口及以下三个记录器:

Logging 的功能被用于本文档中的大部分教程及 How-to。

详细信息请查看 Logging API reference

LoggingExtras.jl

LoggingExtras 包提供了一些 Logging 标准库的必要扩展。例如用于消息过滤的记录器: MinLevelLogger, EarlyFilteredLogger, ActiveFilteredLogger;用于任意消息转换的 TransformerLogger;用于消息路由的 TeeLogger; 以及三个不同的记录器接收器(logger sink):用于记录到磁盘文件的 FileLogger,用于自定义日志输出格式的 FormatLogger, 以及用于根据日期轮换记录到磁盘文件的 DatetimeRotatingFileLogger

LoggingExtras 的功能被用于大部分的 How-to 指南,因此,请参考这些示例。

详细信息请查看 LoggingExtras API reference

LoggingFormats.jl

LoggingFormats 包提供了一些预定义的日志格式,用于和 LoggingExtras.jl 包中的 FormatLogger, DatetimeRotatingFileLogger 一起使用:

详细信息请查看 LoggingFormats API reference

TerminalLoggers.jl

TerminalLoggers 包提供了 TerminalLogger,它是更高级的的记录器,提供日志记录基于终端的漂亮输出。特别是它支持 Markdown 格式的日志消息,以及进度条(建立在 ProgressLogging 包之上)。

详细信息请查看 TerminalLoggers API reference

ProgressLogging.jl

ProgressLogging 包提供了一些很方便的前端宏,包括使跟踪循环结构进度的日志记录变得更简单的 @progress

详细信息请查看 ProgressLogging API reference

LogRoller.jl

LogRoller 包提供了当日志文件达到大小限制时轮换日志文件的功能。特别是 IO RollingFileWriter (可以和其他的记录器组合使用) 以及 RollingLogger.

详细信息请查看 LogRoller API reference

SyslogLogging.jl

SyslogLogging 包提供了 SyslogLogger,它会把消息写到 syslog

详细信息请查看 SyslogLogging API reference

Logging2.jl

Logging2 包提供了重定向 stdoutstderr 输出到日志系统的工具。

详细信息请查看 Logging2 API reference

TensorBoardLogger.jl

TensorBoardLogger 包可以作为后端把结构化数值型数据记录到 TensorBoard

LokiLogger.jl

LokiLogger 包提供了 LokiLogger.Logger 记录器,它把日志消息通过 HTTP 发送到一个 Grafana Loki 服务器。

详细信息请查看 LokiLogger API reference

LogCompose.jl

LogCompose 包提供了声明的记录器配置和相关的 .toml 文件格式。

详细信息请查看 LogCompose API reference

MiniLoggers.jl

MiniLoggers 包提供了 Julia 日志记录器的最小设置和简单而强大的日志字符串格式。它允许构建自定义的和紧凑的日志记录,支持色彩,输出到外部文件,时间戳等更多设置。

详细信息请查看 MiniLoggers API reference