logger插件

logger插件是基于tracing实现的

介绍

日志插件是内置在spring核心模块的插件,也是spring加载的第一个插件。这个插件不需要开发者手动添加。

该插件是集成了最流行的日志库tracing,并提供了以下配置项

配置项

[logger]
enable = true                               # 是否启用日志功能,默认是开启的
pretty_backtrace = false                    # 是否打印堆栈信息,默认是关闭的,建议只在应用开发阶段开启
level = "info"                              # 默认日志级别是info
format = "compact"                          # 日志格式支持compact、pretty、json,默认是compact
time_style = "system"                       # 日志输出所采用的时间戳,支持system、uptime、local、utc、none
time_pattern = "%Y-%m-%dT%H:%M:%S"          # 时间戳的输出格式,time_style为local、utc时才生效
with_fields = [                             # 输出日志时携带其他字段,默认不携带以下字段
    "thread_id",                            # 当前线程ID
    "thread_name",                          # 当前线程名
    "file",                                 # 输出该日志的源文件名字
    "line_number",                          # 输出该日志的源文件所在行号
    "internal_errors",                      # 当出现错误时是否输出包含的内部错误
]
override_filter = "info,axum=debug"         # 重写默认的日志过滤级别,可以针对crate库指定日志级别
file = { enable = true }                   # 是否将日志写入文件中,默认没有开启

这里的time_pattern使用了chrono实现,如需自定义可以参考chrono的格式化语法

你也可以对日志文件进行更详细的配置

[logger.file]
enable = true                              # 是否将日志写入文件
non_blocking = true                         # 是否启用非阻塞方式写入,默认开启
format = "compact"                          # 日志格式支持compact、pretty、json,默认是compact
rotation = "daily"                          # 日志滚动方式minutely、hourly、daily、never,默认按天滚动
dir = "./logs"                              # 日志文件目录
filename_prefix = "app"                     # 日志文件前缀名
filename_suffix = "log"                     # 日志文件后缀名
max_log_files = 365                         # 保留的最大日志数量