Logback 1.6.1 发布,Java 日志框架
Logback 旨在成为广受欢迎的 log4j 项目的继任者,承接 log4j 1.x 版本的发展脉络。Logback 的架构设计高度通用,可适应不同场景需求。目前该框架分为三个模块:logback-core、logback-classic 和 logback-access。
Logback 1.6.1 现已发布,具体更新内容包括:
- 在 TimeBasedRollingPolicy 中,当设置了 file 选项时,异步压缩前重命名的中间文件现在将采用目标归档名称,且不包含压缩后缀(例如 `.gz`、`.zip`、`.xz`)。此前,该文件使用基于纳秒时间的 `.tmp` 后缀。这使得在滚动过程中若压缩失败,该文件更易于识别。
- 如果 GZ、ZIP 或 XZ 压缩失败,原始(未压缩的)日志文件不再被删除。压缩策略现在仅在压缩成功后才删除源文件,并发出警告,提示原始文件仍保留。
- ConsoleAppender 现在会优先检测 JLine 的 org.jline.jansi.AnsiConsole,若未找到则回退到 FuseSource 的旧版 org.fusesource.jansi.AnsiConsole 类。这确保了在 Jansi 迁移到 JLine 项目后,ANSI 着色功能仍能正常工作,可选的 org.jline:jansi-core 组件已与现有的 FuseSource jansi 依赖项一起声明为依赖项。此外,还添加了用于测试的 preferredJansiClassName 属性。<a href="https://github.com/qos-ch/logback/issues/1043">issues/1043</a>
- 现在,如果未设置布局,LayoutWrappingEncoder 会在 start() 中报告错误,并防止 encode() 遇到 null layout。此前,如果缺少布局(例如,在忽略 // 分支之后),编码器会启动,然后在每次事件发生时抛出 NullPointerException 异常,导致日志静默丢失。<a href="https://github.com/qos-ch/logback/issues/1046">issues/1046</a>
- FileCollisionAnalyser 现在可以检测涉及 SiftingAppender 嵌套 appender 的文件冲突。当嵌套文件或 fileNamePattern 没有以文本形式引用鉴别器键(例如 ${userId})时,会在配置时发出警告,并列出 appender、键和共享目标。这弥补了之前静态声明的文件 appender 会被检查,但筛选后的嵌套 appender 却不会被检查的缺陷。<a href="https://github.com/qos-ch/logback/issues/1041">PR #1041</a>
- SyslogOutputStream 和 SyslogAppenderBase 中增加了防御性处理:close() 方法现在确保资源已关闭,写入和刷新会检查底层资源是否处于有效状态,否则将回退为不执行任何操作。
- 可以通过从与标签 v_1.6.0 关联的 commit 从源代码构建,获得与本版本二进制完全相同的版本。Release built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6。
更新说明:<a href="https://github.com/qos-ch/logback/releases/tag/v_1.6.1">https://github.com/qos-ch/logback/releases/tag/v_1.6.1</a>
---
原文链接:[点击查看](https://www.oschina.net/news/481462/logback-1-6-1-released)
Logback 1.6.1 现已发布,具体更新内容包括:
- 在 TimeBasedRollingPolicy 中,当设置了 file 选项时,异步压缩前重命名的中间文件现在将采用目标归档名称,且不包含压缩后缀(例如 `.gz`、`.zip`、`.xz`)。此前,该文件使用基于纳秒时间的 `.tmp` 后缀。这使得在滚动过程中若压缩失败,该文件更易于识别。
- 如果 GZ、ZIP 或 XZ 压缩失败,原始(未压缩的)日志文件不再被删除。压缩策略现在仅在压缩成功后才删除源文件,并发出警告,提示原始文件仍保留。
- ConsoleAppender 现在会优先检测 JLine 的 org.jline.jansi.AnsiConsole,若未找到则回退到 FuseSource 的旧版 org.fusesource.jansi.AnsiConsole 类。这确保了在 Jansi 迁移到 JLine 项目后,ANSI 着色功能仍能正常工作,可选的 org.jline:jansi-core 组件已与现有的 FuseSource jansi 依赖项一起声明为依赖项。此外,还添加了用于测试的 preferredJansiClassName 属性。<a href="https://github.com/qos-ch/logback/issues/1043">issues/1043</a>
- 现在,如果未设置布局,LayoutWrappingEncoder 会在 start() 中报告错误,并防止 encode() 遇到 null layout。此前,如果缺少布局(例如,在忽略 // 分支之后),编码器会启动,然后在每次事件发生时抛出 NullPointerException 异常,导致日志静默丢失。<a href="https://github.com/qos-ch/logback/issues/1046">issues/1046</a>
- FileCollisionAnalyser 现在可以检测涉及 SiftingAppender 嵌套 appender 的文件冲突。当嵌套文件或 fileNamePattern 没有以文本形式引用鉴别器键(例如 ${userId})时,会在配置时发出警告,并列出 appender、键和共享目标。这弥补了之前静态声明的文件 appender 会被检查,但筛选后的嵌套 appender 却不会被检查的缺陷。<a href="https://github.com/qos-ch/logback/issues/1041">PR #1041</a>
- SyslogOutputStream 和 SyslogAppenderBase 中增加了防御性处理:close() 方法现在确保资源已关闭,写入和刷新会检查底层资源是否处于有效状态,否则将回退为不执行任何操作。
- 可以通过从与标签 v_1.6.0 关联的 commit 从源代码构建,获得与本版本二进制完全相同的版本。Release built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6。
更新说明:<a href="https://github.com/qos-ch/logback/releases/tag/v_1.6.1">https://github.com/qos-ch/logback/releases/tag/v_1.6.1</a>
---
原文链接:[点击查看](https://www.oschina.net/news/481462/logback-1-6-1-released)
评论
暂无评论。