Changes

Release History

VersionDateDescription
2.13.32020-05-10GA 版本 2.13.3
2.13.22020-04-23GA 版本 2.13.2
2.13.12020-02-25GA 版本 2.13.1
2.13.02019-12-11GA 版本 2.13.0
2.12.12019-08-06GA 版本 2.12.1
2.12.02019-06-23GA 版本 2.12.0
2.11.22019-02-04GA 版本 2.11.2
2.11.12018-07-22GA 版本 2.11.1
2.11.02018-03-11GA 版本 2.11.0
2.10.02017-11-18GA 版本 2.10.0
2.9.12017-09-17GA 版本 2.9.1
2.9.02017-08-26GA 版本 2.9.0
2.8.22017-04-02GA 版本 2.8.2
2.8.12017-02-26GA 版本 2.8.1
2.82017-01-21GA 版本 2.8
2.72016-10-02GA 版本 2.7
2.6.22016-07-05GA 版本 2.6.2
2.6.12016-06-05GA 版本 2.6.1
2.62016-05-25GA 版本 2.6
2.52015-12-06GA 版本 2.5
2.4.12015-10-08GA 版本 2.4.1
2.42015-09-20GA 版本 2.4
2.32015-05-09GA 版本 2.3
2.22015-02-22GA 版本 2.2
2.12014-10-19GA 版本 2.1
2.0.22014-08-16错误修复和增强
2.0.12014-07-29Bug fixes
2.02014-07-12GA Release
2.0-rc22014-06-21错误修复和增强
2.0-rc12014-02-16错误修复和增强
2.0-beta92013-09-14错误修复和增强
2.0-beta82013-07-10错误修复和增强
2.0-beta72013-06-01错误修复和增强
2.0-beta62013-05-05错误修复和增强
2.0-beta52013-04-20错误修复和增强
2.0-beta42013-01-28错误修复和增强
2.0-beta32012-11-11错误修复和增强
2.0-beta22012-10-07错误修复和增强
2.0-beta12012-09-18错误修复和增强
2.0-alpha22012-08-24错误修复和较小的增强
2.0-alpha12012-07-29重写 Log4j

版本 2.13.3 – 2020-05-10

TypeChangesBy
Fix修复 ThreadContextDataInjector 中的 NullPointerException。修复LOG4J2-2838rgoers

版本 2.13.2 – 2020-04-23

TypeChangesBy
Fix在 GelfLayout 中实现 requireLocation 以反映在消息 Pattern 中是否使用了位置信息。修复LOG4J2-2824。感谢 CrazyBills。rgoers
Fix添加选项以在 JsonLayout 中恢复打印时间 Millis。修复LOG4J2-2588rgoers
Fix在重新构造期间触发策略之前初始化模式处理器。修复LOG4J2-2766rgoers
Update允许在重新配置期间修改文件模式中的文件 extensions。修复LOG4J2-2457rgoers
Fix在 log4j.configurationFile 中添加有关使用 url 的信息。修复LOG4J2-2810rgoers
FixserializeToBytes 正在检查错误的变量是否为 null。修复LOG4J2-2813。感谢 Keith D Gregory。rgoers
Fix修复 ScriptPatternSelector 的 Javadoc。修复LOG4J2-2814rgoers
Fix在日志级别允许尾随和前导空格。修复LOG4J2-2793。感谢 Renukaprasad C.rgoers
Update添加支持以指定 SmtpAppender 的 SSL 配置。修复LOG4J2-2819mattsicker
Update允许检索不带“ /”的 servlet 上下文路径。修复LOG4J2-2520rgoers
Update允许 Spring Lookup 返回默认配置文件和活动配置文件。修复LOG4J2-2818rgoers
Fix更正 JsonLayout 时间戳排序问题。修复LOG4J2-2791。感谢约翰·卡尔伯格。rgoers
Fix允许文件大小操作解析该值,而不会对当前语言环境敏感。修复LOG4J2-2817。感谢 Trejkaz。rgoers
Fix使 YamlLayoutTest 对环境差异更具弹性。修复LOG4J2-2794。感谢约翰·卡尔伯格。rgoers
Update允许 Spring Boot 应用程序使用复合配置。修复LOG4J2-2815rgoers
Add提供 System.Logger 的 Log4j 实现。修复LOG4J2-1360。感谢 Kevin Leturc。rgoers
Fix在 PluginCache 加载期间有条件地分配 PluginEntry。修复LOG4J2-2790。感谢 Marius Volkhart。rgoers
Fix创建 AsyncLogger 时添加缺少的 includeLocation 参数。修复LOG4J2-2811。感谢 Kuojian21.rgoers
Fix当文件路径中包含空格并且使用 Java 安全 Management 器时,修复异常。修复LOG4J2-2761。感谢 Uwe Schindler。rgoers
Fix当 StackWalker 返回 null 时,避免 NullPointerException。修复LOG4J2-2809。感谢 Romain Manni-Bucau。rgoers
Add添加了 EventLookup 以从日志事件中检索字段。修复LOG4J2-2807rgoers
FixTimeFilter 不处理夏令时过渡,并且不支持超过 2 天的范围。修复LOG4J2-2805rgoers
Update添加 ContextDataProviders 作为必须实现 ContextDataInjector 的替代方法。修复LOG4J2-2779rgoers
Update[JDBC]在 JDBC 数据库 Management 器中引发 AppenderLoggingException 而不是 NPE。修复LOG4J2-2812ggregory

版本 2.13.1 – 2020-02-25

TypeChangesBy
Fix由于访问网络接口,Windows 上的初始化缓慢。修复LOG4J2-2717rgoers
Update在 PluginRegistry 中有条件地执行状态日志记录计算。修复LOG4J2-2789。感谢 Marius Volkhart。rgeors
Fix防止在创建 LoggerContext 时对其进行垃圾回收。修复LOG4J2-2756rgoers
Fix如果 Files.move 不起作用,请不要记录错误。修复LOG4J2-2769rgoers
Fix当文件匹配模式但索引太大时,翻转失败。修复LOG4J2-2039rgoers
Fix文件模式计数中使用前导零时,计数器停留在 10 并覆盖文件。修复LOG4J2-2784rgoers
Fix关闭过程中,ClassLoaderContextSelector 找不到 LoggerContext。修复LOG4J2-2746rgoers
Fix使用附加字段时,JSON 输出错误。修复LOG4J2-2652rgoers
FixGraalVM 不允许使用 MethodHandles。修复LOG4J2-2649rgoers
Fix通过使用斜杠作为转义字符,允许带前导破折号的查找键。修复LOG4J2-2211rgoers
Update使用 LinkedBlockingQueue 代替 StatusConfiguration 中的同步收集。修复LOG4J2-2782rgoers
FixServletContainerInitializer 太早获取 StatusLogger。修复LOG4J2-2781。感谢 qxo。rgoers
FixPluginProcessor 应该使用 Messager 而不是 System.out。修复LOG4J2-2676。感谢 Gregg Donovan。rgoers
FixMapMessage.getFormattedMesssage()将错误地格式化对象。修复LOG4J2-2703。感谢 Volkan Yazici。rgoers
Fix始终在新的 OutputStream 上写 Headers。修复LOG4J2-2760。感谢 Christoph Kaser。rgoers
Update将重试计数属性添加到 KafkaAppender。修复LOG4J2-2777。感谢 joongs4.rgoers
FixRollingFileAppender 中的错误消息使用占位符作为名称,但未在日志记录调用中指定 name 参数。修复LOG4J2-2776。感谢 Christoph Kaser。rgoers
Fix使用不带文件名的自定义 DirectFileRolloverStrategy 时发生 NullPointerException。修复LOG4J2-2758。感谢 Christoph Kaser。rgoers
Fix向 LogBuilder 添加多参数重载。修复LOG4J2-2768。感谢 Marius Volkhart。rgoers
Fix通过 JMX 重新配置后,修复了 NullPointerException。修复LOG4J2-2770。感谢 Bill Kuker。rgoers
Fix如果将 createOnDemand 设置为 true,则 RollingFileAppender 在启动时不会滚动。修复LOG4J2-2759rgoers
Fix如果 Routes 元素上缺少模式,则发出警告。使用默认路由。修复LOG4J2-2767rgoers
Fix在 slf4jLogger 创建时,使用不带 EventData 的新版本的 slf4j 修复类加载器中的锁争用。修复LOG4J2-2415。感谢 Andrey Turbanov。ckozak
Fix过渡可以优雅地处理并行文件删除。修复LOG4J2-2677ckozak
Fix由于从 slf4j 中删除,因此从 log4j-slf4j18-impl 中删除了不必要的 EventLogger 引用。修复LOG4J2-2744ckozak
Update将 log4j-slf4j18-impl slf4j 版本从 1.8.0-alpha2 更新到 1.8.0-beta4.修复LOG4J2-2745ckozak
Fix使用“丢弃”异步队列已满策略在队列已满时,使用完全异步日志记录来修复内存泄漏。修复LOG4J2-2747ckozak
Fix修复错误的 log4j-jul 递归 Logger 检测,导致某些无操作的 JULLogger 和状态 Logger 报告“ WARN 递归调用 getLogger”。修复LOG4J2-2739ckozak
Add实现与 ISO8601_PERIOD 匹配的 ISO8601_PERIOD_MICROS 固定日期格式,并支持微秒精度。修复LOG4J2-2748ckozak
FixPluginCache 输出是可重现的,从而允许 Comments 处理器产生确定性的结果。修复LOG4J2-2735。感谢安迪·威尔金森。ckozak
Fix在 Reflection.getCallerClass 无法访问的情况下,修复 StackLocator.getCallerClass 的性能。修复LOG4J2-2751ckozak
FixMutableLogEvent 和 RingBufferLogEvent 避免使用 StringBuffer 和参数数组分配,除非使用了可重用的消息。修复LOG4J2-2752ckozak
FixLoaderUtil.getClassLoaders 可能会发现其他加载器,并且在某些环境中不会再错误地返回带有 null 元素的结果。修复LOG4J2-2754ckozak
FixCronExpression.getBeforeTime()有时会返回不正确的结果。修复LOG4J2-2575。感谢内森·弗里斯。rgoers
Fix[JDBC]当为 VARBINARY 列插入空值时,MS-SQL Server JDBC 驱动程序将引发 SQLServerException。修复LOG4J2-2762ggregory
Update更新依赖项。修复LOG4J2-2763ggregory
Fix通过 JMX 重新配置后,出现 NullPointerException。修复LOG4J2-2770。感谢 Bill Kuker。ggregory

版本 2.13.0 – 2019-12-11

TypeChangesBy
Fix防止递归调用 java.util.LogManager.getLogger()。修复LOG4J2-2058rgoers
FixLOG4J2-2725-为 RingBufferLogEventHandler 添加了 try/finally 在 event.execute()周围,以在出现异常/错误时正确清除内存。修复LOG4J2-2725。感谢 Dzmitry Anikechanka。ckozak
Fix错误的 Java 版本签入 ThreadNameCachingStrategy。修复LOG4J2-2635。感谢 Filipp Gunbin。rgoers
Fix为 CompositeConfiguration 源使用一个不太混乱的名称。修复LOG4J2-2674。感谢 Anton Korenkov。rgoers
Add添加 ThreadContext.putIfNotNull 方法。修复LOG4J2-2732。感谢 Matt Pavlovich。rgoers
Add添加一个级别模式 selectors。修复LOG4J2-2731rgoers
Update将 Jackson 更新至 2.9.10. 修复LOG4J2-2701rgoers
Fix将 setKey 方法添加到 Kafka Appender Builder。修复LOG4J2-2727。感谢 ClémentMathieu。rogers
FixMAC 地址超过 6 个字节时,可能会发生 ArrayIndexOutOfBoundsException。修复LOG4J2-2707。感谢克里斯蒂安·弗兰克。rgoers
Add添加对 Log4j 1 配置文件的实验性支持。修复LOG4J2-63rgoers
Fix如果文件名与文件模式匹配,则滚动文件追加器在翻转后将无法 zipfile。修复LOG4J2-2712rgoers
Add添加在 Log4j 配置中查找 Kubernetes 属性的功能。允许从 Spring 环境中检索 Log4j 属性(如果可用)。修复LOG4J2-2716rgoers
Add允许在 Log4j 2 配置中访问 Spring Boot 应用程序属性。添加小写和大写查找。修复LOG4J2-2710rgoers
Update允许使用 PatternLayout 格式化 GELF 布局的消息部分。允许在 GelfLayout 中明确包含或排除 ThreadContext 属性。修复LOG4J2-2709rgoers
Fix@PluginValue 除了“值”之外,不支持属性名称。修复LOG4J2-2693mattsicker
Fix验证会阻止属性配置中脚本的定义。修复LOG4J2-2647mattsicker
Fix如果复制了文件,请将重命名操作的结果设置为 true。修复LOG4J2-2680。感谢 Guillermo Xavier Hurtado Garcia。rgoers
Fix在缺少的地方添加自动模块名称。修复LOG4J-2672。感谢 Stephen Colebourne。rgoers
Add将构建器模式添加到 Logger 界面。修复LOG4J2-2639rgoers
FixOutputStreamAppender.Builder 忽略 setFilter()。修复LOG4J2-2673。感谢杉村雄一。ggregory
Fix当异步 Logger 抛出错误时,防止内存泄漏。修复LOG4J2-2725。感谢 Dzmitry Anikechanka。ckozak

版本 2.12.1 – 2019-08-06

TypeChangesBy
Fix当序列中缺少文件时,允许文件重命名工作。修复LOG4J2-1946。感谢 Igor Perelyotov。rgoers
Fix使用 ipv6 时支持模拟 MAC 地址。修复LOG4J2-2650。感谢 Mattia Bertorello。rgoers
Fix关闭 LoggerContext 时,请删除对它的引用。修复LOG4J2-2366rgoers
Update使 Log4j Core 对于 Log4j 1.2 API 是可选的。修复LOG4J2-2556rgoers
Fix提高捕获位置信息的性能。修复LOG4J2-2644rgoers
Update将 MongoDB 3 驱动程序从 3.10.1 更新到 3.10.2. 修复LOG4J2-2646ggregory
Update改进 JDBC 附加程序中的异常消息。修复LOG4J2-2657ggregory
FixAbstractAction.reportException 将警告记录到状态 Logger 中,以在基于文件的附加程序无法异步压缩滚动数据时提供更多信息。修复LOG4J2-2658ckozak
Fix除了 IOException 外,AbstractAction 还处理并记录未经检查的 RuntimeException 和 Error。修复LOG4J2-2659ckozak
Update当 JDBC 在 commitAndClose()中抛出 java.sql.SQLTransactionRollbackException 时重试。修复LOG4J2-2660ggregory
Fix使用 JDBC 附加程序时,“值未绑定到语句”,附加程序不遵守 bufferSize =“ 0”。修复LOG4J2-2667。感谢 Gary Gregory 和 Edith Chui。ggregory

版本 2.12.0 – 2019-06-23

TypeChangesBy
FixRollingRandomAccessFileAppender 错误消息引用了不正确的类名称。修复LOG4J2-2547rgoers
Fix将构造函数还原到在 2.8.2 中删除的 ThrowablePatternConverter。修复LOG4J2-2616rgoers
FixStructuredDataId 忽略了 maxLength 属性。修复LOG4J2-2622rgoers
FixRFC5424Layout 未正确设置 MDC 的默认结构化元素 ID。修复LOG4J2-2636rgoers
Add允许零填充 RollingFileAppender 的计数器。修复LOG4J2-2403。感谢 hupfdule。rgoers
Add添加不存在标记时将与事件匹配的过滤器。修复LOG4J2-2427。感谢 Rimaljit Kaur。rgoers
Fix如果插件密钥不是小写,则找不到查找。修复LOG4J2-1143。感谢 Pascal Heinrich。rgoers
Add将重新配置方法添加到 Configurator。修复LOG4J2-2406rgoers
Fix使用 URL 连接在 Jar 中找到插件。修复LOG4J2-1852。感谢 Tanner Altares。rgoers
Fix明确设置文件创建时间。修复LOG4J2-2610rgoers
FixJDK 9 及更高版本的 JEP223 版本检测修复程序。修复LOG4J2-2561。感谢 Ulrich Enslin。rgoers
FixFailoverAppender 因错误附加器而失败。故障转移没有与元素故障转移匹配的参数。修复LOG4J2-1103。感谢 SeánDunne。rgoers
Fix当使用基于大小的触发策略而不使用基于时间的触发策略时,更新文件时间。修复LOG4J2-2602rgoers
Fix如果同时存在 log4j-slf4j-impl 和 log4j-to-slf4j,则抛出更好的异常消息。修复LOG4J2-2597rgoers
Add添加对通过 HTTP(S),Docker 和 Spring Cloud Configuration 重新配置的支持。修复LOG4J2-913rgoers
AddTCP Appender 应支持将主机名解析为多个 IP 地址。修复LOG4J2-2586rgoers
FixJdbcAppender.createAppender()中的 NullPointerException。修复LOG4J2-2559。感谢李磊,加里·格里高利。ggregory
Update将测试从 H2 1.4.197 更新到 1.4.199. 感谢 Gary Gregory。ggregory
Update将 Jackson 从 2.9.7 更新到 2.9.8. 修复LOG4J2-2570。感谢 Gary Gregory。ggregory
Update将 MongoDB 3 模块驱动程序从 3.9.0 更新到 3.10.1. 修复LOG4J2-2574。感谢 Gary Gregory。ggregory
Fix服务器无法通过 SocketAppender 访问时,发生 StackOverflowException。修复LOG4J2-2592。感谢 DávidKaya 和 Gary Gregory。ggregory
Add允许使用 JsonLayout 定制行尾。修复LOG4J2-2337。感谢 Arvind Sahare,Patrice Ferrot。ggregory
Add翻转时的 GZIP 压缩支持可配置的压缩级别。修复LOG4J2-2598。感谢卡特·科扎克(Carter Kozak)。ckozak
Fixorg.apache.logging.log4j.junit.AbstractExternalFileCleaner.println(AbstractExternalFileCleaner.java:169)处的 java.lang.StackOverflowError。修复LOG4J2-2598。感谢 Gary Gregory。ggregory
FixMapPatternConverter 是根据'%K','%map'和'%MAP'模式正确创建的。参数类型未知的 PatternConverter instanceOf 方法不再淘汰那些参数已知的方法。修复LOG4J2-2564ckozak
AddAsyncQueueFullPolicy 配置短值“默认”和“丢弃”不区分大小写,以避免混淆。修复LOG4J2-2611ckozak
Fixorg.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeInternal(JdbcDatabaseManager.java:803)上的 NullPointerException。修复LOG4J2-2612ggregory
Fixorg.apache.logging.log4j.core.script.ScriptManager.ScriptManager(Configuration,WatchManager)中可能的 ClassCastException。修复LOG4J2-2618ggregory
Update将 Jackson 从 2.9.8 更新到 2.9.9. 修复LOG4J2-2619ggregory
FixRoutingAppender PurgePolicy 实现不再停止从 Logger 配置中引用的追加器,而仅停止那些由 RoutingAppender 创建的追加器。请注意,RoutingAppender.getAppenders 不再包括引用的附加程序的条目,仅包括它已创建的条目。修复LOG4J2-2631ckozak
Fix修复了一个竞赛,该竞赛允许在 RoutingAppender 清除策略尝试与记录新事件完全相同的时间删除空闲的附加程序时不记录事件。修复LOG4J2-2629ckozak
Fix队列已满时的异步日志记录不再导致大量 CPU 使用率和低吞吐量。修复LOG4J2-2606ckozak
Update重构低于 35 字节阈值的几种 AsyncLogger 方法以进行内联。修复LOG4J2-2634ckozak
Add为更简单的子类添加并使用方法 org.apache.logging.log4j.message.MapMessage.toKey(String)。修复LOG4J2-2634ggregory

版本 2.11.2 – 2019-02-04

TypeChangesBy
Fix记录“属性”元素必须是第一个配置元素。修复LOG4J2-2500rgoers
Fix将 Log4j-to-SLF4J 添加到 BOM pom.xml。修复LOG4J2-2543。感谢 Dermot Hardy。rgoers
Fix没有文件名时,将文件模式用作 FileManager 的“名称”。修复LOG4J2-2061rgoers
Fix将 LoggerContext.setConfiguration 公开为公共方法。修复LOG4J2-2009rgoers
FixCronTriggeringPolicy 无法正确滚动,尤其是与 SizeBasedTriggeringPolicy 一起使用时。修复LOG4J2-2542rgoers
Fix从任何可访问的 ClassLoader 加载 PropertySources。隐藏访问 PropertySource 可能发生的任何异常。修复LOG4J2-2266rgoers
Fix使用同时记录方法调用的 lambda 表达式记录日志,将导致方法调用内的日志记录到引用行 num 和父方法的方法名称。修复LOG4J2-1570rgoers
Update从 CLIRR 切换到 RevAPI,以检测 API 更改。修复LOG4J2-1576rgoers
Fix如果计算机重新启动,则在使用 DirectWriteRolloverStrategy 时将不遵守 SizeBasedTriggeringPolicy。修复LOG4J2-2485。感谢 Giovanni Matteo Fumarola。rgoers
Fix直接写入创建的文件具有错误的日期/时间。修复LOG4J2-1906rgoers
Fix将 log4j-slf4j18-impl 依赖项添加到 bom pom。修复LOG4J2-2453。多亏了它。rgoers
Fix配置文档引用了错误的方法名称。修复LOG4J2-2515。感谢 MakarovS。rgoers
Fix将 Strings.toRootUpperCase 设为静态方法,以便可以对其进行访问。修复LOG4J2-2514。感谢 smilebrian0515.rgoers
Fix扩展 Log4j 中的“固定的添加者”部分。修复LOG4J2-1571。感谢 torbenmoeller。rgoers
Update提高异常日志记录性能。 ThrowableProxy 构造使用一种更快的方法来发现当前的堆栈跟踪。 ThrowablePatternConverter 和 ExtendedThrowablePatternConverter 默认配置不再为堆栈跟踪内容分配额外的缓冲区。修复LOG4J2-2391ckozak
Fix使用 Log4j 作为会话 Logger 的 PersistenceUnit 的预部署失败(#198)。修复LOG4J2-2397。感谢 EckelDong。ggregory
FixNameAbbreviator 正确缩写第一个片段(#188)。修复LOG4J2-2365。感谢 Eugene Zimichev。ckozak
Fix修复 ReusableParameterizedMessage 中的内存泄漏。修复LOG4J2-2201ckozak
FixReusableObjectMessage 参数已正确传递到附加程序(#203)。修复LOG4J2-2363。感谢 Brian Laub。ckozak
FixNullPointerException 关闭时从未使用过 RollingRandomAccessFileAppender。修复LOG4J2-2418。感谢 Jonas Rutishauser。ggregory
Fix加载插件时处理一些未经检查的异常。修复LOG4J2-2422。感谢 rswart,加里·格雷戈里。ggregory
Fix不允许在 AbstractAppender 上设置一个空的 ErrorHandler,并且将不会按预期进行操作。修复LOG4J2-2441ckozak
Fix尽可能使用 LogEvent 和 Throwable 调用 ErrorHandler,而以前只使用了一个字符串。修复LOG4J2-2444ckozak
Update让 NullAppender 默认将其名称设置为“ null”。修复LOG4J2-2447ggregory
Update将 Jackson 从 2.9.6 更新到 2.9.7. 修复LOG4J2-2468ggregory
Update将 Apache Commons Compress 从 1.17 更新到 1.18. 修复LOG4J2-2469ggregory
Update将 Apache Commons CSV 从 1.5 更新到 1.6. 修复LOG4J2-2470ggregory
Update将 javax.mail 从 1.6.1 更新到 1.6.2. 修复LOG4J2-2471ggregory
Update将 mongo-java-driver 3 从 3.8.0 更新到 3.8.2. 修复LOG4J2-2472ggregory
Fix当 JDBC Appender 的 ColumnMapping 使用模式时,exception 会添加到所有列。修复LOG4J2-2413。感谢 Andres Luuk,Gary Gregory。ggregory
FixColumnMappingLiterals 不起作用。修复LOG4J2-2466。感谢 Paolo Bonanomi,Gary Gregory。ggregory
FixAbstractStringLayoutStringEncodingBenchmark 返回每个基准上的计算变量,以避免 DCE。修复LOG4J2-2478。感谢 Diego Elias Costa。ckozak
FixAwaitCompletionReliabilityStrategy 上的 StackOverflowError。修复LOG4J2-2134。感谢 David del Amo Mateos,Gary Gregory。ggregory
Fix避免在 org.apache.logging.log4j.core.config.AbstractConfiguration 中使用 NullPointerExceptions 作为空参数。修复LOG4J2-2481ggregory
FixRollingRandomAccessFileManager 会忽略程序性重新配置中的新文件模式。修复LOG4J2-2457。感谢 Heiko Schwanke 和 Gary Gregory。ggregory
FixBasicContextSelector 不能在 OSGI 应用程序中使用。修复LOG4J2-2482。感谢 Rob Gansevles。ggregory
Fixlog4j-1.2-api 中缺少 org.apache.log4j.SimpleLayout 和 ConsoleAppender。修复LOG4J2-2476。感谢 Al Bundy。ggregory
UpdateJDBC Appender 应该尽快释放参数资源。修复LOG4J2-2489ggregory
Update允许所有添加者有选择地携带一个 Property 数组。修复LOG4J2-2491ggregory
Fix无法从配置文件中设置 JmsAppender reconnectIntervalMillis。修复LOG4J2-2497ggregory
Fix当 Appender 启动时,如果 JMS 没有启动,则 JMS Appender 可能会引发 NullPointerException。修复LOG4J2-2499ggregory
Add连接过时时,JDBC Appender 应该重新连接到数据库。修复LOG4J2-2496ggregory
Update使用 jul-bridge 时,可以更好地处理%highlight 模式。修复LOG4J2-2405。感谢 Marco Herrn。ggregory
Update将 log4j-mongodb3 模块的 MongoDB 驱动程序从 3.8.2 更新到 3.9.0. 修复LOG4J2-2503ggregory
Add让 JDBC PoolingDriverConnectionSource 和 Apache Commons DBCP 配置一个 PoolableConnectionFactory。修复LOG4J2-2505ggregory
Fix同时使用参数,源和 LiteralsColumnMapping 元素时,JDBC Appender 失败。修复LOG4J2-2508ggregory
Add允许 JDBC Appender 截断字符串以匹配表的元数据列长度限制。修复LOG4J2-2509ggregory
AddPatternLayout%date 转换模式应呈现 ISO-ISO8601 的时区指示符。修复LOG4J2-1246ggregory
Fix遍历 ListAppender 事件时,防止 ConcurrentModificationException。修复LOG4J2-2527ckozak
Fix使用 MapMessageLookup.lookup 和未实现 StringMapMessage 的 MapMessages 修复回归。修复LOG4J2-2522。感谢亚当·莱西亚克。ckozak
Fix使用 MapMessage 实现与的通用检查不扩展 StringMapMessage。根据 JAVA 格式(但不带引号)引入新的 JAVA_UNQUOTED MapMessage 格式类型。修复LOG4J2-2530。感谢 Travis Spencer。ckozak
Fix修复由 LOG4J2-2301 在 2.11.1 中引入的回归,从而允许在 AsyncLoggerConfig 中进行分配。修复LOG4J2-2533。感谢 Michail Prusakov。ckozak

版本 2.11.1 – 2018-07-22

TypeChangesBy
FixThrowableProxy 使用不同的键保存和检索缓存条目。修复LOG4J2-2389。感谢刘雯。rgoers
Fix如果根 LoggerConfig 没有级别,则返回 ERROR。修复LOG4J2-2316rgoers
Fix修复 log4j Web 文档中断开的链接。修复LOG4J2-2390。多亏了 anton-balaniuc。rgoers
Update允许对上下文参数进行复合配置。修复LOG4J2-1721。感谢 Phokham Nonava。rgoers
FixOSGi 激活器指定了错误的版本。修复LOG4J2-2343。感谢 RaymondAugé。rgoers
Fix使用 Service Loader 介体规范,使 java.util.ServiceLoader 在 OSGi 中正常工作。修复LOG4J2-2305。感谢 BjörnKautler。rgoers
Fix将 SLF4J 绑定拆分为 2 种实现-一种用于 SLF4J 1.7.x,一种用于 SLF4J 1.8. 修复LOG4J2-2305rgoers
Fix缺少元素时改善插件错误消息。修复LOG4J2-2268。感谢 Tilman Hausherr。rgoers
Fix将 Log4j 与 oracle.xml.jaxp.JXDocumentBuilderFactory 一起使用时,ParserConfigurationException。修复LOG4J2-2283。感谢 Vishnu Priya Matha。ggregory
FixPoolingDriverConnectionSource 不考虑属性,用户名和密码。修复LOG4J2-2300ggregory
Update初始化时,状态 Logger 应显示 Log4j 名称和版本。修复LOG4J2-2302ggregory
UpdateLog4j2 2.8.2 JMX 取消注册 NullPointerException。修复LOG4J2-2304。多亏吴孟生。ggregory
Update将 Jackson 从 2.9.4 更新到 2.9.5. 修复LOG4J2-2311ggregory
Update将 LMAX Disruptor 从 3.3.7 更新到 3.4.2. 修复LOG4J2-2313ggregory
Update使用 JBoss EAP 6.2 的 Log4j 2.0 错误“无法搜索 jar”。修复LOG4J2-548。感谢 Shehata,Paresh Varke,Eric Victorson 和 Martin Laforet。ggregory
FixMutableLogEvent 和 RingBufferLogEvent 消息纪念品保留原始格式的字符串。修复LOG4J2-2307ckozak
Fix参数中的花括号不视为占位符。修复LOG4J2-2032。感谢 Kostiantyn Shchepanovskyi。ckozak
FixMutableLogEvent.getNonNullImmutableMessage 和 Log4jLogEvent.makeMessageImmutable 保留格式和参数。修复LOG4J2-2317ckozak
Fix当异步队列已满时,消息不再突变。而是将警告记录到状态 Logger 中。修复LOG4J2-2318ckozak
Fix当引发另一个异常时,修复 AbstractLogger 中的 NPE,以掩盖根本原因。修复LOG4J2-2320ckozak
Fix未指定时,AsyncLogger 使用正确的级别。这提供了 AsyncLogger 和 Logger 之间的奇偶校验。修复LOG4J2-2321ckozak
Fix默认情况下,选择 AsyncLoggerContext 的自定义 ContextSelector 实现会禁用 LoggerConfig.includeLocation 以便与 AsyncLoggerContextSelector 进行奇偶校验。修复LOG4J2-2322ckozak
Fix每次使用后,都会清除对其他对象的 MutableLogEvent 引用。修复了内存泄漏,该泄漏导致在启用了线程本地功能的同步日志记录之后保留对参数的引用。修复LOG4J2-2269ckozak
Update将 JAnsi 从 1.17 更新到 1.17.1. 修复LOG4J2-2328ggregory
Fix混合的异步 Logger 不再忘记参数值,而是为一些附加程序提供了空数组。修复LOG4J2-2301ckozak
FixRollingFileManager 调试日志记录避免了字符串连接和大括号,而有利于参数化日志记录。修复LOG4J2-2331。感谢 Mike Baranski。ckozak
Fix处理在默认干扰程序 ExceptionHandler 实现中引发的错误,以避免杀死后台线程。修复LOG4J2-2333ckozak
Fix添加 API org.apache.logging.log4j.core.appender.AsyncAppender.getQueueSize()。修复LOG4J2-2334ggregory
Fix从 AsyncLoggerConfig 后台线程名称中删除重复的连字符。修复LOG4J2-2336ckozak
Fix将 Apache Commons Compress 从 1.16.1 更新到 1.17. 修复LOG4J2-2347ggregory
Update添加了 AbstractLogEvent.getMutableInstant,以允许 MutableInstant 实例由扩展 AbstractLogEvent 的类修改。修复LOG4J2-2351ckozak
FixRingBufferLogEvent 备忘录消息提供了预期的格式字符串,并且不再尝试将参数替换为参数 toString 值的花括号。 RingBufferLogEvent 和 MutableLogEvent 纪念品实现均会记住结果,以避免重建格式化的字符串值。修复LOG4J2-2352ckozak
FixPropertiesUtil 忽略非字符串系统属性。修复了初始化静态 PropertiesUtil 字段时,初始化由 NPE 引起的 NoClassDefFoundError 初始化 StatusLogger 的问题。修复LOG4J2-2355。感谢 Henrik Brautaset Aronsen。ckozak
Update将 Jackson 从 2.9.5 更新到 2.9.6. 修复LOG4J2-2357ggregory
Update将 KafkaClient 端从 1.0.0 更新到 1.1.0. 修复LOG4J2-2358ggregory
Fix修复了内存泄漏,其中 ReusableObjectMessage 将保存对最近记录的对象的引用。修复LOG4J2-2362ckozak
Fix与 AsyncLoggerContextSelector 一起使用的 Jackson 布局输出预期的格式,而不是仅输出消息文本的 JSON 字符串。修复LOG4J2-2312ckozak
Fix修复了内存泄漏,其中 ReusableParameterizedMessage 将保存对最近记录的 throwable 和提供的 varargs 数组的引用。修复LOG4J2-2364ckozak
Fix嵌套日志记录不会破坏 AbstractStringLayout 缓存的 StringBuidlers。修复LOG4J2-2368ckozak
FixStringBuilders.escapeJson 实现在线性时间内运行。在 EncodingPatternConverter 和 MapMessage 中转义大型 JSON 字符串的性能将明显更好。修复LOG4J2-2373。感谢 Kevin Meurer。ckozak
FixStringBuilders.escapeXml 实现在线性时间内运行。在 EncodingPatternConverter 和 MapMessage 中转义大型 XML 字符串的性能将明显更好。修复LOG4J2-2376。感谢 Kevin Meurer。ckozak
Fix使用 Bootstrap 类加载器时,org.apache.logging.log4j.util.LoaderUtil.getClassLoaders()中的 NullPointerException。修复LOG4J2-2377。感谢 Gary Gregory 的 Mirko Rzehak。ggregory
Fix将 Mongodb 3 驱动程序从 3.6.3 更新到 3.8.0. 修复LOG4J2-2382ggregory
Update将 KafkaClient 端从 1.1.0 更新到 1.1.1. 修复LOG4J2-2384ggregory
Update将 Groovy 从 2.4.13 更新到 2.5.1. 修复LOG4J2-2385ggregory
Update将可选的 Apache Commons DBCP 从 2.2.0 更新到 2.4.0. 修复LOG4J2-2386ggregory
Fix在中断的线程中记录消息时,线程将无限期阻塞。修复LOG4J2-2388。感谢 Failled。ggregory

版本 2.11.0 – 2018-03-11

TypeChangesBy
FixLoaderUtil 未在类加载器上正确循环。修复LOG4J2-2104rgoers
Fix将 OSGi API 版本还原为 4.3.1. 修复LOG4J2-1976rgoers
Update手册页中针对自定义配置的文档修复。修复LOG4J2-2273。感谢 Bruno P. Kinoshita。rpopma
Update现在,可重用的 LogEvents 将原始格式字符串传递给下游组件,例如布局和过滤器。修复LOG4J2-2252。感谢卡特·科扎克(Carter Kozak)。rpopma
Add添加 API 以启用对消息参数的迭代,而无需创建临时对象。修复LOG4J2-2253。感谢卡特·科扎克(Carter Kozak)。rpopma
Fix将 module-info.class 移至 META-INF/versions/9 目录。修复LOG4J2-2271rgoers
FixLists 中包含错误的自动模块名称 Headers。修复LOG4J2-2254rgoers
Fix当使用 DirectWriteRolloverStrategy 将标题提供给 RollingRandingAccessFileAppender 上的布局时,将发生 NullPointerException。修复LOG4J2-2247rgoers
Update内部状态 Logger 时间戳格式现在可以使用系统属性``进行配置。修复LOG4J2-2250rpopma
Update从 2.9 开始,Log4j 使用嵌入式 picocli,从而消除了对 jcommander 的不必要依赖。修复LOG4J2-2236rpopma
Add在 Java 9 上运行时,添加了对精确(微秒和纳秒)时间戳的支持。PatternLayout 支持有限数量的精确%d 日期格式。潜在的突破性变化:XML,JSON 和 YAML 格式已更改:它们不再具有“ timeMillis”属性,而是具有带有“ epochSecond”和“ nanoOfSecond”属性的“ Instant”元素。修复LOG4J2-1883。感谢 Anthony Maire。rpopma
Add在 JsonLayout 中为 ObjectMessage 输出 JSON 对象。修复LOG4J2-2190。感谢 Franz Wong。mikes
Add使 log4j-core 成为多发行版(“多版本”)jar,并添加了 log4j-core-java9 模块。修复LOG4J2-2191rpopma
FixLog4j2 在 java.util.ServiceLoader 中的 Java 9 中引发 NoClassDefFoundError。修复LOG4J2-2129。感谢 Blazej Bucko。rgoers
Fix修复了 ThreadContextMap 被清除,导致条目仅可用于一个日志事件的错误。修复LOG4J2-2158。感谢 BjörnKautler。rpopma
Fix避免在 DefaultConfigurationBuilder 中使用空属性值。修复LOG4J2-2002。感谢 Paul Burrowes。mikes
Fix修复“属性替换”文档中的拼写错误。修复LOG4J2-2175。感谢 Behrang Saeedzadeh。mikes
Fix允许在反序列化时对 SortedArrayStringMap 进行过滤。修复了编译 log4j-core 测试类时 Java 9 中的构建错误。修复LOG4J2-2163rgoers
Fix禁用日志记录时,请勿在 traceExit(R)中创建退出消息。修复LOG4J2-2157。感谢 Malte Skoruppa。ggregory
FixDefaultMergeStrategy 未正确合并 Logger 上的过滤器。修复LOG4J2-2123。感谢 Jacob Tolar。rgoers
Update将 MavenBinding 插件的版本更新为 3.4.0. 将 bundle 插件错误转换为警告。修复LOG4J2-2146rgoers
Update减少 log4j-api 中的编译器警告。修复LOG4J2-2215rpopma
Add将缺少的转换器添加到 PatternLayout。修复LOG4J2-2143mikes
Add添加 API org.apache.logging.log4j.core.lookup.Interpolator.getStrLookupMap()。修复LOG4J2-2160ggregory
Update从 MdcPatternConverter 中删除了不必要的 threadlocal StringBuilder 字段。修复LOG4J2-2127。感谢卡特·科扎克(Carter Kozak)。rpopma
Fix从 Log4J API 模块中删除了对 Java Management API 的编译时依赖性,以改善与不支持 JMX 扩展的 Android 平台的兼容性。修复LOG4J2-2126。感谢 Oleg Kalnichevski。rpopma
Update要求 Java 9 编译 log4j-perf 模块以允许使用 Java 9 API 进行基准测试。修复LOG4J2-2194rpopma
Update将 JMH 从 1.1.1 更新到 1.19 版。修复LOG4J2-2193rpopma
Update将 ZeroMQ 的 jeromq 从 0.4.2 更新到 0.4.3. 修复LOG4J2-2132ggregory
Update将 Jackson 从 2.9.2 更新到 2.9.3. 修复LOG4J2-2165ggregory
AddMongoDB Appender 应该为 Log4j MapMessage 使用键和值。修复LOG4J2-2179ggregory
Add添加一个 MongoDbProvider 构建器,并淘汰 org.apache.logging.log4j.mongodb.MongoDbProvider.createNoSqlProvider()。修复LOG4J2-2180ggregory
AddJDBC Appender 应该使用 Log4j MapMessage 中的键和值。修复LOG4J2-2181ggregory
Update将 MongoDB 驱动程序从 3.0.4 更新到 3.6.1. 修复LOG4J2-2184ggregory
Add添加一个简单的基于 JDBC DriverManager 的 ConnectionSource,该连接源使用 JDBC 的 DriverManager#getConnection(String,String,String)。修复LOG4J2-2185ggregory
Update文档默认属性值支持。修复LOG4J2-2197。感谢 Fabrice Daugan。ggregory
Update将 MongoDB 依赖项从经典更新为现代。修复LOG4J2-2198ggregory
Add添加一个提供通过 Apache Commons DBCP 2 进行池化的 JDBC ConnectionSource。修复了LOG4J2-2186ggregory
Add为 JDBC Appender 添加连接源钩子,以释放其资源。修复LOG4J2-2187ggregory
Add添加 org.apache.logging.log4j.core.util.WatchManager#unwatch(File)。修复LOG4J2-2203ggregory
Updateorg.apache.logging.log4j.core.util.WatchManager.getWatchers()应该预先分配其新 Map。修复LOG4J2-2204ggregory
Add添加方法 org.apache.logging.log4j.core.util.WatchManager.reset(File)和 reset()。修复LOG4J2-2206ggregory
Add将调试日志记录添加到 org.apache.logging.log4j.mongodb.MongoDbConnection。修复LOG4J2-2208ggregory
Update将现有的 MongoDb 插件和相关工件从 MongoDb 重命名为 MongoDb2.修复LOG4J2-2209ggregory
Update修复 Script 的错误日志消息,改为 ScriptFile。修复LOG4J2-2210。感谢 BjörnKautler。ggregory
UpdateCopyOnWriteSortedArrayThreadContextMap 中的不必要争用。修复LOG4J2-2212。感谢 Daniel Feist 和 Gary Gregory。ggregory
UpdateGarbageFreeSortedArrayThreadContextMap 中的不必要争用。修复LOG4J2-2213。感谢 Daniel Feist 和 Gary Gregory。ggregory
UpdateDefaultThreadContextMap 中的不必要的争用。修复LOG4J2-2214。感谢 Daniel Feist 和 Gary Gregory。ggregory
Update在 log4j 2.10.0 中的 org.apache.logging.log4j.util.Activator.loadProvider(Activator.java:81)处发生 NullPointerException。修复LOG4J2-2182。感谢 liwenxian2017,Gary Gregory。ggregory
Update.properties 中的 MarkerFilter onMismatch 无效属性。修复LOG4J2-2202。感谢基利安,加里·格里高利。ggregory
Update配置构建器类应查找“ onMismatch”,而不是“ onMisMatch”。修复LOG4J2-2219。感谢基利安,加里·格里高利。ggregory
Update新模块 log4j-mongodb3:删除不推荐使用的 MongoDB API,并删除 Java 驱动程序版本 3 API 的代码。修复LOG4J2-2205。感谢 Gary Gregory。ggregory
Update将 JPA 支持拆分为一个新模块 log4j-jpa。修复LOG4J2-2188。感谢 Gary Gregory。ggregory
Update将 Jackson 从 2.9.3 更新到 2.9.4. 修复LOG4J2-2229。感谢 Gary Gregory。ggregory
Update由于 NUL 字符,无法在 Windows 上查看或复制所有某些 JAnsi 异常消息。修复LOG4J2-2243。感谢 Gary Gregory。ggregory
Update将 Apache Commons Compress 从 1.15 更新到 1.16.1. 修复LOG4J2-2245。感谢 Gary Gregory。ggregory
Update将 MongoDB 3 模块从驱动程序 3.6.1 更新到 3.6.3. 修复LOG4J2-2259ggregory
Update[SMTP]将 javax.mail 从 1.6.0 更新到 1.6.1. 修复LOG4J2-2260ggregory
Update将 JAnsi 从 1.16 更新到 1.17. 修复LOG4J2-2264ggregory
FixStrings :: join,当用[null]调用时返回“ null”而不是 EMPTY。修复LOG4J2-2270。感谢西里尔·马丁(Cyril Martin)。ggregory
Fixorg.apache.logging.log4j.status.StatusLogger。\ (StatusLogger.java:71)中的 ConcurrentModificationException。修复LOG4J2-2276。感谢 Sean Baxter。ggregory
Fix允许 EnvironmentPropertySource 与拒绝环境变量访问的 SecurityManager 一起运行。修复LOG4J2-2274。感谢 Sebastien Lannez。ggregory
Fix允许 SystemPropertiesPropertySource 与拒绝系统属性访问的 SecurityManager 一起运行。修复LOG4J2-2279。感谢 Gary Gregory。ggregory

版本 2.10.0 – 2017-11-18

TypeChangesBy
FixDynamicFilterThreshold 的 XML 模式不接受多个 KeyValuePair。修复LOG4J2-2289。感谢 Hari Menon。ggregory
Add在 JSON 中正确转义换行符和其他控制字符。修复LOG4J2-2120。感谢卡特·道格拉斯·科扎克。mikes
Add添加属性以禁用消息模式转换器查找。修复LOG4J2-2109。感谢卡特·道格拉斯·科扎克。mikes
AddMapMessage 应该使用深色的 toString 作为值。修复LOG4J2-2112。感谢卡特·道格拉斯·科扎克。mikes
FixMapMessage 支持 StringBuilderFormattable 和 MultiformatMessage。修复LOG4J2-2107。感谢卡特·道格拉斯·科扎克。mikes
FixMapMessage JSON 编码将转义键和值。修复LOG4J2-2102。感谢卡特·道格拉斯·科扎克。mikes
FixMapMessage 中的非字符串值导致 ClassCastException。修复LOG4J2-2101。感谢卡特·道格拉斯·科扎克。mikes
AddPatternLayout 的 XML 编码。修复LOG4J2-2103mikes
Add提供 Eclipse Jetty 的 org.eclipse.jetty.util.log.Logger 的本地 Log4j 2 实现。修复LOG4J2-2114ggregory
Add允许过滤布局模式中的换行符。修复LOG4J2-1203。感谢罗伯特·特纳。mikes
Add为仍使用 Log4j 1.x 的应用程序添加 noop AppenderSkeleton。修复LOG4J2-2098rgoers
FixLog4j 遵循配置的“ log4j2.is.webapp”属性。修复LOG4J2-2091。感谢卡特·道格拉斯·科扎克。mikes
FixJackson 的 LevelMixIn 类编码错误。修复LOG4J2-2100ggregory
Fix现在需要显式启用 Jansi(通过将系统属性设置为)。为了避免给 Web 应用程序造成问题,Log4j 将不再自动尝试在没有显式配置的情况下加载 Jansi。修复LOG4J2-2087。感谢 Andy Gumbrecht。rpopma
Fix在保留对 LogEvent 的引用之前,AbstractDatabaseManager 应该复制 LogEvent:AsyncLogger 日志事件是可变的。修复LOG4J2-2060rpopma
Update每个附加程序将 log4j-nosql 拆分为一个模块。修复LOG4J2-2076mikes
Update将 picocli 从 0.9.8 升级到 2.0.3. 修复LOG4J2-2088rpopma
Add添加使用 KafkaAppender 将消息密钥发送到 Kafka 的可能性。修复LOG4J2-2062。感谢 Jorge Sanchez。mikes
Add模块化 Log4j-api,并使大多数其他 log4j jar 自动模块。修复LOG4J2-2056rgoers
Add简化 log4j 系统属性命名方案。修复LOG4J2-1431mattsicker
Add添加全局配置环境 SPI。修复LOG4J2-1809mattsicker
Update提供对覆盖 Tomcat 8.5 中的 Tomcat Log 类的支持。修复LOG4J2-2025rgoers
Add将具有固定值的字段添加到 JSON/XML/YAML 布局。修复LOG4J2-1694。感谢 MichalDvořák。mikes
Add提供配置 SSL 的方法,以避免在 log4j 配置中使用纯文本密码。现在,配置可以指定保存密码的系统环境变量,或保存密码的文件的路径。修复LOG4J2-2054rpopma
Update支持 SLF4J 1.8 中引入的新 SLF4J 绑定机制。修复LOG4J2-2057rgoers
Update在 Java 8u102 或更高版本上运行时,默认情况下禁用线程名称缓存。修复LOG4J2-2052rpopma
Fix如果将 Log4j 用作 Tomcat 日志记录实施,则在应用程序也使用 Log4j 的情况下,启动可能会失败。修复LOG4J2-2055rgoers
Update将 API 中的 org.apache.logging.log4j.core.net.ssl 中的类从字符串更新为产生用于密码的 char []的 PasswordProvider。修复LOG4J2-1896rpopma
Fix在此更改之前,只要异步日志记录队列已满,消息就会在日志文件中乱序显示。进行此更改后,仅当 Log4j2 在队列已满时检测到递归日志记录时,才按 Sequences 注销消息以防止死锁。修复LOG4J2-2031rpopma
Fix异常 java.nio.charset.UnsupportedCharsetException:2.9.0 中的 cp65001.修复LOG4J2-2053ggregory
Fix嵌套模式布局选项已损坏。修复LOG4J2-1216。感谢 Thies Wellpott,Barna Zsombor Klara 和 GFriedrich。ggregory
FixLog4j1XmlLayout 不提供整个堆栈跟踪,它缺少由信息引起的信息。修复LOG4J2-2070。感谢道格·休斯。ggregory
FixCompositeConfiguration 支持重新配置。 PR#115.修复LOG4J2-2036。感谢 Robert Haycock。ggregory
Add添加 org.apache.logging.log4j.core.config.composite.CompositeConfiguration#toString()。修复LOG4J2-2071。感谢卡特·科扎克(Carter Kozak)。ggregory
FixLog4j-config.xsd 应该使每个 Logger 元素的 AppenderRef 成为可选的。修复LOG4J2-2073。感谢 Patrick Lucas。ggregory
Fix控制台附加程序应说明为什么无法加载 JAnsi。修复LOG4J2-2074ggregory
FixCsvParameterLayout 的 Javadoc 中引用了错误的 Apache Commons CSV 版本。修复LOG4J2-2085。感谢 IstvánNeuwirth。ggregory
Update将 LMAX 干扰器从 3.3.6 更新到 3.3.7. 修复LOG4J2-2078ggregory
Update将 Apache Commons Compress 从 1.14 更新到 1.15. 修复LOG4J2-2081ggregory
Update[TagLib]更新 servlet-api 提供的依赖关系从 2.5 到 3.0.1. 修复LOG4J2-2089ggregory
Update将 Apache Kafka kafka-clients 从 0.11.0.1 更新为 1.0.0. 修复LOG4J2-2096ggregory
Update从 Jackson 2.9.1 更新到 2.9.2. 修复LOG4J2-2077ggregory
Update2.9.2 的 Jackson 依赖关系错误地引入了 2.9.0 而不是 2.9.2 的 jacksonComments。修复LOG4J2-2117ggregory

版本 2.9.1 – 2017-09-17

TypeChangesBy
Fix使用 AsyncLoggerConfig 防止 ConcurrentModificationException。修复LOG4J2-1988rpopma
Fix使用 AsyncLoggerConfig 防止 ConcurrentModificationException。修复LOG4J2-1914rpopma
Fix将 AsyncAppender 的默认队列大小从 128 增加到 1024.修复了LOG4J2-2048rpopma
Fix异步 Logger 现在需要修复文档来阐明 Disruptor-3.3.4(以前提到的文档从未提及过 Disruptor-3.3.3)。修复LOG4J2-2035rpopma
Fix检查所有已知的 ClassLoader 以找到服务提供者。修复LOG4J2-2030rgoers
FixJava 9 StackLocator 未正确跳过初始堆栈帧。修复LOG4J2-2028。感谢 Jason Tedor。rgoers
Update使用类的规范名称而不是名称来创建其 Logger 名称。修复LOG4J2-2023ggregory
Fixjava.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature()。修复LOG4J2-2026。感谢 Leon Finker。ggregory
Fix标记示例不应使用不赞成使用的流 API。修复LOG4J2-2029。感谢 Fabrizio Cucci。ggregory
Fix使所有 Logger 在 OSGi 环境下异步时发生 ClassNotFoundException。修复LOG4J2-1936。感谢 Helber Belmiro。ggregory
Update将 Jackson 从 2.9.0 更新到 2.9.1(Java 9 的修复程序)。修复LOG4J2-2043ggregory
Update将 Apache Commons CSV 从 1.4 更新到 1.5. 修复LOG4J2-2044ggregory
Update将 javax.mail 从 1.5.6 更新到 1.6.0. 修复LOG4J2-2045ggregory
Update将 Apache Commons Compress 从 1.13 更新到 1.14. 修复LOG4J2-2046ggregory
Update将 Cassandra 驱动程序从 3.1.0 更新到 3.1.4. 修复LOG4J2-2047ggregory
Update将 Apache Kafka Client 从 0.11.0.0 更新到 0.11.0.1. 修复LOG4J2-2049ggregory

2.9.0 版– 2017-08-26

TypeChangesBy
Update将对 DirectWriteRolloverStrategy 的支持添加到 RollingRandomAccessFileAppender。修复LOG4J2-1928rgoers
Fix当使用 DirectWriteRolloverStrategy 指定文件名时,防止 NullPointerException。修复LOG4J2-1833rgoers
UpdateRFC5424Layout 现在显示进程 ID。修复LOG4J2-2022rgoers
Update从 KafkaAppender 移除默认布局。修复LOG4J2-2020mikes
Fix修复 LoggerNameLevelRewritePolicy 的错误文档。修复LOG4J2-2018rpopma
FixSyslogAppender 中的 mdcId 参数没有默认值。修复LOG4J2-922。感谢 angus.aqlu,Paul Burrowes。ggregory
FixStyleConverter.newInstance 参数验证不正确。修复LOG4J2-2001。感谢 Paul Burrowes。ggregory
FixHighlightConverter 会将所有无法识别的级别转换为 DEBUG。修复LOG4J2-1999。感谢 Paul Burrowes。ggregory
FixSslSocketManager 不在 TCP 重新连接上应用 SSLContext。修复LOG4J2-2013。感谢泰勒·巴顿(Taylor Patton),加里·格里高利(Gary Gregory)。ggregory
Update使用类的规范名称而不是名称来创建其 Logger 名称。修复LOG4J2-2023ggregory
Update允许 KeyStoreConfiguration 和 TrustStoreConfiguration 查找文件作为资源。修复LOG4J2-2015ggregory
Update用 picocli 替换 JCommander 命令行解析器,使用户无需外部依赖项即可运行 Log4j2Util。修复LOG4J2-2011rpopma
Add支持在 RFC5424Layout 中打印多个 StructuredData 元素。修复LOG4J2-2008rgoers
Add用于将 JsonLayout/XmlLayout/YamlLayout 的输出解析为 LogEvent 的公共 API。修复LOG4J2-1986mikes
Update允许用户指定 StructuredData 的 maxLength。修复LOG4J2-1984rgoers
Update在 SMTP 附加程序中允许 bufferSize = 0.修复LOG4J2-1071。感谢 Ben Ludkiewicz,Benjamin Jaton。ggregory
AddJsonLayout,XmlLayout 和 YamlLayout 支持日志事件的 0 字节终止。修复LOG4J2-1981mikes
Add支持 MongoDb 附加程序的封顶集合。修复LOG4J2-1864。感谢 Matthias Kappeller。mattsicker
Fix使用其他方式移动文件时,将 FileRenameAction 标记为成功。修复LOG4J2-2016。感谢本杰明·贾顿。ggregory
Fix在 Linux 中使用单独的驱动器时无压缩。修复LOG4J2-2012。感谢本杰明·贾顿。ggregory
FixLog4j 引发 java.nio.charset.UnsupportedCharsetException:cp65001.修复LOG4J2-1888。感谢 Misagh Moayyed。ggregory
FixConcurrentModificationException 记录 Map 类型的参数。修复LOG4J2-1990。感谢 Philippe Mouawad。ggregory
Fix重新连接到服务器后,SocketAppender 将丢失多个事件。修复LOG4J2-1311。多亏梁希炳。ggregory
Fix修剪时,请考虑 StringBuilder 的容量而不是内容长度。修复LOG4J2-1977。感谢 Jerry xnslong。ggregory
Fix将 log4j-core 注册为 OSGi 服务。在 MacOS 上跳过 LOG4J2-1766 的测试。在 MacOS 上将组“ staff”用于 LOG4J2-1699 测试。修复LOG4J2-1971rgoers
FixTcpSocketServer 不会关闭接受的套接字。修复LOG4J2-1994ggregory
FixLog4J JUL Bridge 和 RMI 安全 Management 器导致访问被拒绝(“ java.util.logging.LoggingPermission”“控制”)。修复LOG4J2-1987。感谢 Andreas Felder。ggregory
FixLog4j-config.xsd 仅允许每个 Logger 元素一个 AppenderRef 元素。修复LOG4J2-1982。感谢 Christoph Lembeck。ggregory
Fix修复默认缓冲区大小以匹配文档(从 8102 到 8192,也称为 8KB.)。修复LOG4J2-1985。感谢 Kenneth McFarland。ggregory
Add如果系统属性 log4j2.debug 定义为任何值(或没有值),则 Log4j2 现在将所有内部日志记录打印到控制台。修复LOG4J2-1813rpopma
Update异步 Logger 不再使用已弃用的 LMAX Disruptor API。 (现在需要 Disruptor-3.3.3 或更高版本.)。修复LOG4J2-1261rpopma
Update使用针对目标文件的多个不兼容的附加程序进行错误配置时,改进了错误消息。修复LOG4J2-1908rpopma
Update现在,具有多个 rootLogger 的配置大声失败。修复LOG4J2-1954rpopma
Update弃用 SerializedLayout 并将其默认删除。修复LOG4J2-1958mikes
Update在 XML 配置文件中禁用 DTD 处理。修复LOG4J2-1959mikes
Add过渡期间的临时压缩目录(#88)。修复LOG4J2-1766。感谢 Pierrick HYMBERT。ggregory
Update使用 jdk9 要求修复 docker build(#84)。修复LOG4J2-1950。感谢 Pierrick HYMBERT。ggregory
Update关闭 log4j 之后,向打印到控制台的 WARN“忽略日志事件”消息中添加更多详细信息。修复LOG4J2-1801rpopma
Add添加了包装类 CustomLoggerGenerator 和 ExtendedLoggerGenerator,以避免带有美元($)字符的类名,这在许多* nix 命令行环境中具有特殊含义。修复LOG4J2-1814rpopma
Add添加了进程 ID(pid)模式转换器。修复LOG4J2-1884rpopma
Update促进在 Android 应用程序中使用 log4j:从 log4j-api 中删除对 RMI 和 Management API 的依赖。修复LOG4J2-1926rpopma
Add具有 PosixFilePermission 的可配置日志文件权限。修复LOG4J2-1699。多亏了 Pierrick HYMBERT 的 Demetrios Dimatos。ggregory
Add为所有测试 jar 生成源 jas。修复LOG4J2-1945ggregory
AddJMS Appender 不知道如何从断开的 Connecting 恢复。修复LOG4J2-1934ggregory
Add即使在配置时不存在,JMS Appender 也应该能够连接到代理(以后)。修复LOG4J2-1955ggregory
UpdateJMS Appender 代理密码应为 char [],而不是字符串。修复LOG4J2-1956ggregory
Add在 ByteBufferDestination 接口中添加了:: writeBytes(ByteBuffer)和:: writeBytes(byte [],int,int)方法,并在 TextEncoderHelper 中使用这些方法为将来的增强做准备,以减少锁争用。修复LOG4J2-1874。感谢罗曼·莱文托夫。rpopma
FixCompositeConfiguration 记录警告“无法确定配置的 URI”。但是,重新配置已完成。修复LOG4J2-1912。感谢 R Ri。ggregory
Fix动态重新配置不适用于 RollingFile 的 filePattern。修复LOG4J2-1964。感谢 Pierrick HYMBERT。ggregory
Fix重新配置会中断 DirectWriteRolloverStrategy。修复LOG4J2-1961。感谢 Christian Vent。ggregory
FixRFC5424Layout 中的 eventPrefix 属性被忽略。修复LOG4J2-1943rgoers
Fix当 JmsAppender 构建器捕获尝试自行构建的异常时,不会释放 JndiManager。修复LOG4J2-1953ggregory
Fix改进 DynamicThresholdFilter 的文档。修复LOG4J2-1911rgoers
FixEOFException 与 FormattedMessage。修复LOG4J2-1929。感谢 Borys Sokolov。ggregory
Fix从属性文件读取修剪级别以删除尾随空格。修复LOG4J2-1948。感谢 MichaelLück。ggregory
FixClassCastException:org.eclipse.osgi.internal.loader.SystemBundleLoader $ 1 无法转换为 java.lang.ClassLoader。修复LOG4J2-1971。感谢 liwenxian2017.ggregory
Add通用 HTTP 附加程序。修复LOG4J2-1442mikes
Add将 with(String,native)方法添加到 org.apache.logging.log4j.message.MapMessage。修复LOG4J2-1935ggregory
Add将 forEach()方法添加到 org.apache.logging.log4j.message.MapMessage。修复LOG4J2-1930ggregory
Add将 containsKey()方法添加到 org.apache.logging.log4j.message.MapMessage。修复LOG4J2-1932ggregory
Update支持使用 java.util.ServiceLoader 定位 Log4j 2 API 提供程序。修复LOG4J2-1917rgoers
Update在手册(和其他更新)中包括 PatternLayout 的分隔符选项。修复LOG4J2-1966。感谢 M Sazzadul Hoque。ggregory
Add在 GelfLayout 中支持空字节定界符。修复LOG4J2-1854。感谢 Xavier Jodoin。mikes
Add添加对 Java 9 StackWalker 的支持。修复LOG4J2-1359rgoers
Add当发现无效的 ConfigurationFactory 的配置文件时发出警告。修复LOG4J2-1880mikes
Add在 TimeBasedTriggeringPolicy 中添加可选的随机延迟。修复LOG4J2-1855。感谢 Anthony Maire。mattsicker
Fix更可靠地检查运行时依赖项。修复LOG4J2-1876mikes
Fix修复配置文档。修复LOG4J2-1867mikes
Fix确保在记录长消息后,ParameterizedMessage 中的 ThreadLocal StringBuilder 不会容纳过多的内存。修复LOG4J2-1858rpopma
Fix修复有关 Logger 默认可加性值的文档。修复LOG4J2-1885mattsicker
FixScriptEngineManager 在 Android 中不可用,并导致 NoClassDefFoundError。修复LOG4J2-1920。感谢 Ajitha。ggregory
Fix为 AbstractTriggeringPolicy 澄清 Javadoc。修复LOG4J2-1989。感谢 Kenneth McFarland。ggregory
Fix修复 LoggerConfigTest 中的编译器警告。修复LOG4J2-1993。感谢 Kenneth McFarland。ggregory
Update将服务器组件从 log4j-core 移至新的 log4-server 模块。修复LOG4J2-1851mikes
Add在 ConfigurationBuilder 中添加 Property 和 KeyValuePair 组件的快捷方式。修复LOG4J2-1860mikes
AddJMS Appender 应该将 JMS MapMessage 用于 Log4j MapMessage。修复LOG4J2-1294ggregory
Update重构 SimpleMessage 使其简洁明了(#100)。修复LOG4J2-1991ggregory
Update将 Jackson 从 2.8.9 更新到 2.9.0. 修复LOG4J2-2017ggregory
Update将 ZeroMQ 的 JeroMQ 从 0.3.6 更新到 0.4.0. 修复LOG4J2-1868ggregory
Update将 ZeroMQ 的 JeroMQ 从 0.4.0 更新到 0.4.1. 修复LOG4J2-1960ggregory
Update将 ZeroMQ 的 JeroMQ 从 0.4.1 更新到 0.4.2. 修复LOG4J2-1974ggregory
Update将 KafkaClient 端从 0.10.1.1 更新到 0.10.2.0. 修复LOG4J2-1869ggregory
Update将 KafkaClient 端从 0.10.2.0 更新到 0.11.0.0. 修复LOG4J2-1962ggregory
Update将 JavaMail 从 1.5.5 更新到 1.5.6. 修复LOG4J2-1872ggregory
Update将 JAnsi 从 1.14 更新到 1.15. 修复LOG4J2-1879ggregory
UpdateDefaultRolloverStrategy 中缺少最大索引限制的文档。修复LOG4J2-1877。感谢 Chandra Tungathurthi。ggregory
Update将缺少的吸气剂添加到 org.apache.logging.log4j.core.net.ssl 包中的类中。修复LOG4J2-1899ggregory
Update将 JAnsi 从 1.15 更新到 1.16. 修复LOG4J2-1900ggregory
Update将 SLF4J 从 1.7.24 更新到 1.7.25. 修复LOG4J2-ggregory
Update将 Jackson 从 2.8.7 更新到 2.8.9. 修复LOG4J2-1938ggregory
Update将 HdrHistogram 从 2.1.8 更新为 2.1.9. 修复LOG4J2-1970rpopma
Update将 javax.persistence 从 2.1.0 更新到 2.1.1. 修复LOG4J2-1975ggregory
Update将 org.osgi.core 从 4.3.1 更新到 6.0.0. 修复LOG4J2-1976ggregory

版本 2.8.2 – 2017-04-02

TypeChangesBy
Fix在有关继承的 org.apache.logging.log4j.ThreadContext 上修复 JavaDoc。修复LOG4J2-1861mattsicker
Fix修复有关@Order 和 OrderComparator 排序的 JavaDoc。修复LOG4J2-1862。感谢王云涛。mattsicker
Fix解决了 FixedDateFormat 的夏令时(DST)问题。修复LOG4J2-1849rpopma
Fix修复 Windows 上的 CassandraRule 和单元测试。修复LOG4J2-1850。感谢 Ludovic Hochet。mattsicker
Fix修复%replace 转换器文档中的拼写错误。修复LOG4J2-1840。感谢 Pradeep Balasundaram。mattsicker
FixLogEvent.getLoggerName()在 LoggerNameLevelRewritePolicy 中返回 null 时进行处理。修复LOG4J2-1846mikes
FixLogEvent.getLoggerName()在 KafkaAppender 中返回 null 时进行处理。修复LOG4J2-1845mikes
FixRandomAccessFileAppender.Builder 追加字段的默认值错误。修复LOG4J2-1853。感谢王云涛。ggregory
Add添加对 TcpSocketServer 和 UdpSocketServer 中的 Importing 过滤的支持。修复LOG4J2-1863mattsicker
Add将 JSON 编码支持添加到 EncodingPatternConverter%encode{}。修复LOG4J2-1848mattsicker
Add添加对将通用后缀附加到可抛出堆栈跟踪的每一行的支持。修复LOG4J2-1843。感谢宋子龙。mattsicker
Add添加了对将通用后缀附加到扩展的和根可抛出堆栈跟踪的每一行的支持。修复LOG4J2-1838。感谢宋子龙。mattsicker
Update将集成测试移至其自己的模块以加快构建速度。修复LOG4J2-1827rgoers
Fix修复有关 JeroMQ 许可的文档。修复LOG4J2-1835mattsicker
Fix将 API 版本更新为 2.6.0. 修复LOG4J2-1836rgoers
FixHtmlLayout 中的 NullPointerException。修复LOG4J2-1831。感谢 Edward Serebrinskiy。ggregory
Fix如果存在安全 Management 器,则 Log4j 2.8 可能会丢失异常。修复LOG4J2-1820。感谢 Jason Tedor。ggregory
Update将 Jackson 从 2.8.6 更新到 2.8.7. 修复LOG4J2-1856ggregory

版本 2.8.1 – 2017-02-26

TypeChangesBy
Fix允许%i 在文件模式中以“-”之外的其他字符开头。修复LOG4J2-1804。感谢 Pierrick Hymbert。rgoers
Update将 SLF4J 更新到 1.7.24. 修复LOG4J2-1822rgoers
Update找不到 log4j 2 配置文件时改进的错误消息。修复LOG4J2-1812rpopma
Update更新以使用 Logback 1.1.10,然后使用 Logback 1.2 进行测试。修复LOG4J2-1810rgoers
Update将 Jackson 从 2.8.5 更新到 2.8.6. 修复LOG4J2-1819ggregory
Fix修复 OSGi 测试中的 ClassNotFoundException org.apache.logging.log4j.core.util.ExecutorServices。修复LOG4J2-1753。感谢 Ludovic Hochet。ggregory
Fix在 Log4j-config.xsd 中将 minOccur 更改为 minOccurs。修复LOG4J2-1816。感谢 shubhankar1100.rpopma
Fix修复 Maven POM,以确保在基准 jars 中包含在 log4j-perf 中 JMH 生成的类。修复LOG4J2-1803rgoers
Fix使用 syncSend = false 发送到 Kafka 时报告错误。修复LOG4J2-1800。感谢 Vincent Tieleman。mikes
Fix修复了 FixedDateFormat 中的稀有种族情况,将 FixedDateFormat :: millisSinceMidnight 方法设为公开。修复LOG4J2-1805rpopma
Fix修复了 PropertiesUtil :: getCharsetProperty 中的错误,该错误导致 ConsoleAppender 出现 UnsupportedCharsetException。修复LOG4J2-1799。感谢 Eduard Gizatullin。rpopma
Fix修复 Javadoc 的 DefaultRolloverStrategy :: purgeAscending。修复LOG4J2-1806。感谢 challarao。rpopma
Fix修复当 filePattern 不包含目录组件时翻转工作的问题。修复LOG4J2-1818。感谢 xkr47.ggregory
Add删除 Logger API 中对 MessageSupplier lambda 函数的弃用。修复LOG4J2-1823mattsicker
Add[core]添加并实现 LogEvent.toImmutable()。修复LOG4J2-1807ggregory

版本 2.8 – 2017-01-21

TypeChangesBy
Fix在 LoggerContext 中消除对 ExecutorServices 的使用。修复LOG4J2-1780mikes
Add重命名文件时,使 DefaultRolloverStrategy 更有效率。将 nomax 选项添加到 fileIndex 属性。修复LOG4J2-1032rgoers
AddRollingFileAppender 现在支持省略文件名并直接写入存档文件。修复LOG4J2-1101rgoers
Fix现在,ConfigurationScheduler 在停止期间保留中断标志。修复LOG4J2-1786rpopma
Add允许属性中的默认值是一个 Lookup。修复LOG4J2-1243rgoers
Fix修复了 AsyncLogger 无法解析配置属性的错误。修复LOG4J2-1779rpopma
Fix修复了并发性问题,该问题会影响除 PatternLayout 和 GelfLayout 之外的所有布局,当从多个线程同步记录时,这些布局会导致混乱的输出和异常。修复LOG4J2-1769。感谢 Brandon Goodin。rpopma
Fix在运行时在 GelfLayout 的其他字段中使用变量。修复LOG4J2-1724。感谢 Alexander Krasnostavsky。mikes
Fix将 Builder 添加到 GelfLayout。修复LOG4J2-1762mikes
Fix确保 ConfigurationScheduler 关闭时不会阻塞。修复LOG4J2-1649。感谢 Georg Friedrich。rgoers
FixCronTriggeringPolicy 翻转时会使用错误的日期/时间,并在重新配置时创建多个触发策略。修复LOG4J2-1653。感谢 Georg Friedrich。rgoers
Fix不要将非守护程序线程池用于过渡任务。修复LOG4J2-1748mikes
Fix修复了 2.6 中引入的 FileAppender 中的文件锁定回归。修复LOG4J2-1628rpopma
Fix自定义 Logger“生成”工具不再需要 classpath 上的 log4j-api 模块。修复LOG4J2-1744rpopma
FixSslSocketManager 现在尊重 connectTimeoutMillis。修复LOG4J2-1731。感谢克里斯·里布尔。rpopma
Fix使用 LocalizedMessageFactory 的 Logger 将打印密钥而不是消息。修复LOG4J2-1682。感谢 Markus Waidhofer。ggregory
Fix使 GelfLayout 独立于 Jackson。修复LOG4J2-1720mikes
Fix修复了 ObjectMessage 和 SimpleMessage 中的争用条件,确保日志消息包含对象在日志调用期间具有的值。修复LOG4J2-1719rpopma
Fix修复了在无垃圾模式下将日志消息参数数组的元素清空为零的错误。修复LOG4J2-1688rpopma
Fix将 putAll()方法添加到 CloseableThreadContext。修复LOG4J2-1692。感谢格雷格·托马斯(Greg Thomas)。mikes
Fix添加 CleanableThreadContextMap 接口支持方法 removeAll(Iterable)。修复LOG4J2-1689mikes
FixPatternLayout 中的选项“ disableAnsi”可无条件禁用 ANSI 转义码。修复LOG4J2-1685。感谢拉曼古普塔。mikes
Fix使 TimeFilter 可用作全局过滤器和 Logger 过滤器。修复LOG4J2-1706rpopma
Fix(GC)避免在 VariablesNotEmptyReplacementConverter 中分配临时对象。修复LOG4J2-1722rpopma
Fix(GC)避免在 EncodingPatternConverter 中分配临时对象。修复LOG4J2-1717rpopma
Fix(GC)避免在 MapPatternConverter 中分配临时对象。 (请注意,构造 MapMessage 并不是没有垃圾的.)修复LOG4J2-1716rpopma
Fix(GC)避免在 MapMessage 中分配临时对象。修复LOG4J2-1683rpopma
Fix(GC)避免在 NdcPatternConverter 中分配临时对象。 (请注意,ThreadContext 堆栈的使用不是无垃圾的.)修复LOG4J2-1715rpopma
Fix(GC)避免在 AbstractStyleNameConverter 中分配临时对象。修复LOG4J2-1714rpopma
Fix(GC)避免在 TimeFilter 中分配临时对象。修复LOG4J2-1680rpopma
Fix(GC)避免在 StructuredDataFilter 中分配临时对象。修复LOG4J2-1679rpopma
Fix(GC)避免在 ThreadContextMapFilter 中分配临时对象。修复LOG4J2-1678rpopma
Fix(GC)避免在 MapFilter 中分配临时对象。修复LOG4J2-1677rpopma
Fix(GC)避免在 ThresholdFilter 中分配临时对象。修复LOG4J2-1674rpopma
Fix(GC)避免在 MarkerFilter 中分配临时对象。修复LOG4J2-1673rpopma
Fix(GC)避免在 LevelRangeFilter 中分配临时对象。修复LOG4J2-1672rpopma
Fix(GC)避免在 EqualsIgnoreCaseReplacementConverter 中分配临时对象。修复LOG4J2-1671rpopma
Fix(GC)避免在 EqualsReplacementConverter 中分配临时对象。修复LOG4J2-1670rpopma
Fix(GC)避免在 MaxLengthConverter 中分配临时对象。修复LOG4J2-1669rpopma
Fix(GC)避免在 MarkerPatternConverter 中分配临时对象。修复LOG4J2-1668rpopma
Fix(GC)避免在 SequenceNumberPatternConverter 中分配临时对象。修复LOG4J2-1667rpopma
Fix(GC)避免在 RelativeTimePatternConverter 中分配临时对象。修复LOG4J2-1666rpopma
Fix(GC)避免在 IntegerPatternConverter 中分配临时对象。修复LOG4J2-1665rpopma
Fix修复了在 OSGi 容器中使用时出现的问题(IllegalAccessError,NoClassDefFoundError)。修复LOG4J2-1637rpopma
Fix改进 LogEvent 序列化以处理不可序列化的消息,并在缺少所需类时进行反序列化。修复LOG4J2-1226rpopma
Fix确保可以对 SortedArrayStringMap 进行序列化和反序列化,而无论内容如何,都不会出错。修复LOG4J2-1663rpopma
Fix使用 Configurator :: initialize 初始化 Log4j 并使用 BasicContextSelector 时,请防止 ThreadContextMapFactory :: createThreadContextMap 中的 NPE。修复LOG4J2-1658rpopma
Fix不可变的空 StringMap。修复LOG4J2-1645mikes
Fix可配置的 JVM 关闭钩子超时。修复LOG4J2-1623mikes
Fix从 Apache Commons Lang 的 org.apache.commons.lang3.time 软件包中获取错误修复。修复LOG4J2-1712ggregory
FixConsole Appender 不会选择 Oracle Java 8 的 sun.stdout.encoding 和 sun.stderr.encoding。修复LOG4J2-1636。感谢 Eldar Gabdullin。ggregory
Fix修复 MemoryMappedFileAppender.createAppender()Javadoc 以便即时刷新。修复LOG4J2-1639。感谢 Sridhar Gopinath。ggregory
Fix某些 LogEvent 可能不携带 Throwable(在 log(Message)方法中使用 Message.getThrowable()。)。修复LOG4J2-1676。感谢 Joern Huxhorn。ggregory
Fix对 geronimo-jms_1.1_spec 的有害传递依赖关系会导致 OSGi 测试失败。修复LOG4J2-1723。感谢 Ludovic HOCHET。ggregory
Fix改进 OSGi 单元测试。修复LOG4J2-1664。感谢 Ludovic HOCHET。ggregory
Fix在 Java EE/OSGi 环境中解析堆栈时,ThrowableProxy 中的 NPE。修复LOG4J2-1687。感谢 Robert Christiansen。ggregory
FixDefaultShutdownCallbackRegistry 可以引发 NoClassDefFoundError。修复LOG4J2-1642。感谢 Johno Crawford。ggregory
Fix当 EvaluationOnStartup 为 true 时,CronTriggeringPolicy 引发异常并且无法转换日志文件。修复LOG4J2-1474。感谢尹明俊,霓虹灯。ggregory
Fix发生某些启动错误时,SslSocketManagerFactory 可能会泄漏套接字。修复LOG4J2-1734ggregory
Fix发生某些启动错误时,TcpSocketManagerFactory 可能会泄漏套接字。修复LOG4J2-1736ggregory
Fix以编程方式添加 CronTriggeringPolicy 会导致 NPE。修复LOG4J2-1740ggregory
FixCompositeConfiguration 不会将过滤器添加到 appenderRefs。修复LOG4J2-1743。感谢 Toby Shepheard。ggregory
Fix在模式和其他标签中添加 xmlns。修复LOG4J2-1756。感谢 shubhankar1100.ggregory
Update将 Conversant Disruptor 从 1.2.7 更新到 1.2.10. 修复LOG4J2-1781mattsicker
Update用 Spring Test 和 Mockito 替换单元测试中的 MockEJB 依赖关系。修复LOG4J2-1774mattsicker
UpdateAbstractLoggerAdapter 中的锁定无效。修复LOG4J2-1644。多亏 Pavel Sivolobtchik,Tim Gokcen。ggregory
Update将 JeroMQ 从 0.3.5 更新到 0.3.6. 修复LOG4J2-1641ggregory
Update将 Commons Lang 从 3.4 更新到 3.5. 修复LOG4J2-1647mattsicker
Update在单元测试中迁移到 Mockito2.x。修复LOG4J2-1646mattsicker
Update将 Jackson 从 2.8.3 更新到 2.8.4. 修复LOG4J2-1655ggregory
Update将 Jackson 从 2.8.4 更新到 2.8.5. 修复LOG4J2-1735ggregory
Update将 Apache Flume 从 1.6.0 更新到 1.7.0. 修复LOG4J2-1656ggregory
Update将 LMAX Disruptor 从 3.3.5 更新到 3.3.6. 修复LOG4J2-1698ggregory
Update将 Jansi 从 1.13 更新到 1.14. 修复LOG4J2-1700ggregory
Update将 Kafka 从 0.10.0.1 更新到 0.10.1.1. 修复LOG4J2-1750ggregory
Update将 liquibase-core 从 3.5.1 更新到 3.5.3. 修复LOG4J2-1751ggregory
Update现在,log4j-slf4j-impl 模块在 log4j-core 上声明了运行时依赖项。尽管在技术上不是必需的,但这使 log4j-slf4j-impl 模块的行为与 slf4j-log4j12 相似,并有助于向 Log4j 2 的移植。修复了LOG4J2-1302rpopma
Add记录如何在 Maven 和 Gradle 中排除传递冲突的依赖关系。修复LOG4J2-1787mattsicker
Add添加 StatusLoggerRule 以允许单元测试设置状态级别。修复LOG4J2-1773mattsicker
Add通过新的 ColumnMapping 插件向 JdbcAppender 添加非字符串数据类型支持。修复LOG4J2-424mattsicker
Add将构建器添加到 ColumnConfig 并弃用 ColumnConfig.createColumnConfig()。修复LOG4J2-1771mattsicker
Add将构建器添加到 JdbcAppender 并弃用 JdbcAppender.createAppender()。修复LOG4J2-1770mattsicker
Add在 ContextDataFactory 缓存的构造函数中使用 MethodHandle。修复LOG4J2-1764mattsicker
Add添加 Apache Cassandra 附加程序和 ColumnMapping 插件。修复LOG4J2-1730mattsicker
Add为 java.util.UUID 添加 TypeConverter。修复LOG4J2-1759mattsicker
Add为 java.nio.file.Path 添加 TypeConverter。修复LOG4J2-1758mattsicker
Add为 java.net.InetAddress 和端口号添加 TypeConverter 和约束验证器。修复LOG4J2-1755mattsicker
Add重构 SyslogAppender,使 Layout 是一个 Plugin 元素。修复LOG4J2-969ggregory
Add添加了公共方法 ThreadContext :: getThreadContextMap;删除了类 ThreadContextAccess。修复LOG4J2-1660rpopma
Add添加有关 YAML 配置格式的文档。修复LOG4J2-1379mattsicker
Add介绍标记接口 AsynchronouslyFormattable。修复LOG4J2-1718rpopma
Add引入接口 IndexedStringMap 和 IndexedReadOnlyStringMap,支持对已排序的 Map 进行无垃圾回收。修复LOG4J2-1681rpopma
Add将生成器添加到 ScriptPatternSelector 并弃用 ScriptPatternSelector.createSelector()。修复LOG4J2-1695ggregory
Add将构建器添加到 MarkerPatternSelector,并弃用 MarkerPatternSelector.createSelector()。修复LOG4J2-1696ggregory
Add将 SerializerBuilder 添加到 PatternLayout 并弃用 PatternLayout.createSerializer()。修复LOG4J2-1697ggregory
Add将生成器添加到 RandomAccessFileAppender,并弃用 RandomAccessFileAppender.createAppender()。修复LOG4J2-1701ggregory
Add将生成器添加到 MemoryMappedFileAppender,并弃用 MemoryMappedFileAppender.createAppender()。修复LOG4J2-1703ggregory
Add将生成器添加到 RollingRandomAccessFileAppender,并弃用 RollingRandomAccessFileAppender.createAppender()。修复LOG4J2-1704ggregory
Add将生成器添加到 SyslogAppender 并弃用 SyslogAppender.createAppender()。修复LOG4J2-1709ggregory
Add允许 TCP 套接字添加器设置套接字选项。修复LOG4J2-1707ggregory
Add允许 Secure Socket Appender 设置套接字选项。修复LOG4J2-1708ggregory
Add将生成器添加到 SyslogLayout 并弃用 SyslogLayout.createLayout(Facility,boolean,String,Charset)。修复LOG4J2-1737ggregory
Add将构建器添加到 JsonLayout 中,并弃用 org.apache.logging.log4j.core.layout.JsonLayout.createLayout(配置,布尔值,布尔值,布尔值,布尔值,布尔值,布尔值,字符串,字符串,字符集,布尔值)。修复LOG4J2-1738ggregory
Add将 Builder 添加到 KafkaAppender,并弃用 KafkaAppender.createAppender(布局,过滤器,字符串,布尔值,字符串,属性[],配置)。修复LOG4J2-1739ggregory
Add将 SyncSend 属性添加到 KafkaAppender(与 KafkaLog4jAppender 中一样)。修复LOG4J2-1733。感谢 Vincent Tieleman。ggregory
Fix无法为 PatternLayout%xEx 定义“过滤器”和“分隔符”。修复LOG4J2-2195。感谢 Raman Gupta,Gary Gregory。ggregory
FixRootThrowablePatternConverter 不使用 TextRenderer 或行分隔符选项。修复LOG4J2-2221。感谢 Raman Gupta,Gary Gregory。ggregory

版本 2.7 – 2016-10-02

TypeChangesBy
Fix修复了在关机期间使用 JUL 日志记录时的 ClassCastException。修复LOG4J2-1618。感谢拉曼古普塔。rpopma
Fix2 .7-rc1:RollingFileAppender InstantFlush 默认值应为 true,而不是 false。修复LOG4J2-1620。感谢 Sascha Scholz。ggregory
FixWeb 应用程序的上下文数据注入器的性能得到改进,可与独立应用程序媲美。修复LOG4J2-1611rpopma
Fix引入了带有 stop(long,TimeUnit)方法的新接口 LifeCycle2,以避免破坏与新 Configurator.shutdown(LoggerContext,long,TimeUnit)API 的向后兼容性。修复LOG4J2-1591rpopma
Fix解决了过滤器扩展 AbstractFilter 的问题,该过滤器未覆盖展开的 varargs 方法。修复LOG4J2-1590rpopma
Fix修复了由日志参数对象的 toString()方法的嵌套日志触发的加扰日志消息。修复LOG4J2-1583。感谢拉里·韦斯特。rpopma
FixLog4j 线程不再在 Tomcat 关闭时泄漏。修复LOG4J2-1259。感谢 Steffen Offermann 的 Misagh Moayyed。ggregory
Fix在 Google App Engine 上启动时,Interpolator 现在将取消 jvmrunargs 查找的 NoClassDefFoundError 堆栈跟踪。修复LOG4J2-1051。感谢 Lukasz Lenart。rpopma
Fix在没有 JMX 的平台上初始化时,Interpolator 组件不再打印警告消息的堆栈跟踪。修复LOG4J2-1582rpopma
Fix当 MBean 已经被注销时,注销 JMX 组件不再打印堆栈跟踪。修复LOG4J2-1581rpopma
Fix支持在配置中将属性值指定为值属性和元素。修复LOG4J2-1313。感谢 Philipp Knobel,Leon Finker。rpopma
Fix(GC)LoggerConfig 现在将配置属性存储在一个列表中,而不是一个 Map 中,以防止创建临时的 Iterator 对象。添加了方法 LoggerConfig#getPropertyList(),不赞成使用的方法#getProperties()。修复LOG4J2-1575rpopma
Fix修复了使用异步日志记录和扩展堆栈跟踪模式时的类加载器死锁。修复LOG4J2-1457。感谢 Leon Finker。mattsicker
Fix已修复,以防止存在安全 Management 器时 Log4j 2.6.2 和更高版本丢失异常。修复LOG4J2-1563。感谢 Jason Tedor。ggregory
Fix解决了 LogEvent.getContextStack()返回 null 的问题。修复LOG4J2-1530mikes
Fix当队列已满并且已记录对象的 toString()记录另一条消息时,防止在异步 Logger 中出现死锁。修复LOG4J2-1518。感谢 Leon Finker。rpopma
Fix防止 ParameterizedMessage.formatTo 中的 ArrayIndexOutOfBoundsException 用于单字符或空消息。修复LOG4J2-1542。感谢 RogérioLecariãoLeite。rpopma
Fix解决了 AsyncLoggerContextSelector PropertiesConfigurationBuilder 默认为 includeLocation = true 的问题。修复LOG4J2-1549。感谢 Jason Bedard。mikes
Fix如果 SocketAppender 无法连接到服务器,则防止其使用量不受限制地增长。修复LOG4J2-1562ggregory
Fix在 Level.isInRange 中防止 NPE。修复LOG4J2-1559。感谢 Andrey Plotkin。ggregory
Fix当将参数作为单独的参数而不是 varargs 传递时,DynamicThresholdFilter 过滤不正确。修复LOG4J2-1511。感谢 Srikanth Surukuntu。ggregory
Fix[CronTriggeringPolicy] ConfigurationScheduler 在首次触发后无限期地调度任务。修复LOG4J2-1548ggregory
Fix如果 log4j2.disable.jmx 属性为 true,则 Log4j 不应注销 JMX MBean。修复LOG4J2-1506。感谢 Johannes Schleger。ggregory
FixLog4j2 应该推迟创建日志文件,直到追加程序实际收到事件为止。修复LOG4J2-1490。感谢 Krzysztof Taborski。ggregory
Fix支持从 jar 文件和目录(其 Classpath 条目使用“ vfs” URL 协议)中加载自定义插件。修复LOG4J2-1320。感谢 Paresh Varke,Pierrick Hymbert。ggregory
Fix修复 XmlConfiguration.XmlConfiguration(ConfigurationSource)中的文件句柄资源泄漏。修复LOG4J2-1541ggregory
Fix动态删除过滤器时,请防止 NPE。修复LOG4J2-1538。感谢 Igor Karpov。ggregory
Fix在复合配置中属性未正确合并。修复LOG4J2-1532ggregory
Fix在复合配置中属性未正确合并。修复LOG4J2-1529。感谢 Sridevi Narra。mattsicker
Fix在 Web 应用程序中使用 RingBufferLogEvent.getFormattedMessage()时,请防止 NPE。修复LOG4J2-1527。感谢 Jose Leon。rpopma
Fix增加了完全禁用(日期)查找的功能,以与其他库(如 Camel)兼容。修复LOG4J2-905。感谢 MoritzLöser。ggregory
Fix添加了对在 ConfigurationBuilder 中设置 StatusLogger 目标的支持。修复LOG4J2-1526mikes
Fix允许将逗号分隔的代理,主机列表传递给 FlumeAppender。修复LOG4J2-1448。感谢 Keith Laban。rpopma
Fix比较具有不同属性的节点时,由于 NPE 合并配置失败。修复LOG4J2-1500。感谢 Jose Leon。ggregory
Fix修复了 CsvParameterLayout 中的错误标题。修复LOG4J2-1482。感谢 Sumit Singhal。ggregory
Fix记录了 JVMImporting 参数查找(JMX)在 Google App Engine 上不可用。修复LOG4J2-1199rpopma
Fix(GC)向 ObjectMessage(和 ReusableObjectMessage)添加了 getParameter()方法。修复LOG4J2-1438rpopma
Fix(GC)修复了 ISO8601%date 转换模式,带有句点“。”的情况。毫秒分隔符现在是无垃圾的。修复LOG4J2-1488。感谢 Richard Zschech。rpopma
Fix(GC)具有时区参数的固定%date 转换模式现在是无垃圾的。修复LOG4J2-1489。感谢 Richard Zschech。rpopma
Fix在 FastDateParser $ TimeZoneStrategy 中防止 NullPointerException。修复LOG4J2-1279。感谢 Tony Baines。rpopma
Fix(GC)HighlightConverter 和 StyleConverter 现在不包含 GC。修复LOG4J2-1341。感谢 Richard Zschech。rpopma
Fix[OSGi]修复了缺少的导入包。修复LOG4J2-1467。感谢 Ralf,Gary Gregory。rpopma, ggregory
Fix[OSGi]修复了 Lists 文件中的错误片段主机。修复LOG4J2-351。感谢 Roland Weiglhofer。rpopma, ggregory
Fix现在,在配置中声明的属性可以在元素主体或名为“ value”的属性中具有其值。修复LOG4J2-1313。感谢 Philipp Knobel。rpopma
Fixorg.apache.logging.log4j.core.appender.routing.IdlePurgePolicy 无法正常工作。修复LOG4J2-1235。感谢 Niranjan Rao,Sascha Scholz 和 Aleksey Zvolinsky。ggregory
Fix修复了以下问题:如果数据以{,(, [ or ". Fixes LOG4J2-1502开头,则 CsvParameterLayout 和 CsvLogEventLayout 插入 NUL 字符。感谢 Sumit Singhal。ggregory
Fix布局不再是可选的。修复LOG4J2-1573。感谢 Steffen Offermann。ggregory
FixServletAppender 不向 ServletContext 提供可抛出对象。修复LOG4J2-1608ggregory
Fix防止在 org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder,char [],int,Object [],int,int [])中潜在的 NPE。修复LOG4J2-1599ggregory
Fix防止由于 org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch [],String,boolean,boolean,Configuration)而导致的潜在 NPE。修复LOG4J2-1600ggregory
Fix防止由于 org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript,PatternMatch [],String,boolean,boolean,Configuration)导致的潜在 NPE。修复LOG4J2-1601ggregory
Fix当 object 为 null 时,防止在 org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object)中潜在的 NPE。修复LOG4J2-1602ggregory
Fix在 org.apache.logging.log4j.core.net.ssl 类中重做 hashCode()和 equals()方法。修复LOG4J2-1603ggregory
Fix将 targetNamespace 添加到 log4j-config.xsd。 GitHub#43.修复LOG4J2-1610。感谢 Shubhankar。ggregory
Fix新的 Log4jLogEvent()。toString()引发 NPE。修复LOG4J2-1619ggregory
Add可以使用脚本配置 RoutingAppender。在“路由”元素中添加脚本。修复LOG4J2-1578ggregory
Add添加 ScriptAppenderSelector 以创建由脚本指定的 Appender。修复LOG4J2-1597ggregory
Add(GC)添加了对无垃圾的 ThreadContextMap 的支持。默认情况下处于禁用状态,用户需要显式启用此功能。修复LOG4J2-1349rpopma
Add(GC)更改了 LogEvent 的内部数据结构,以使上下文数据无垃圾。添加了方法 LogEvent#getContextData(),不赞成使用的方法#getContextMap()。修复LOG4J2-1447rpopma
Add用户现在可以从 ThreadContext 以外的其他来源注入上下文数据。值可以是任何对象,而不仅仅是字符串。修复LOG4J2-1010。感谢 MikaelStåldal。rpopma
Add向 AsyncAppender 添加了对 java.util.concurrent.LinkedTransferQueue 的支持。修复LOG4J2-1568mattsicker
Add在 AsyncAppender 中添加了对 Conversant DisruptorBlockingQueue 的可选支持。修复LOG4J2-1430。感谢约翰·凯恩斯。mattsicker
Add在 AsyncAppender 中添加了对 JCTools MPSC 有界无锁队列的可选支持。修复LOG4J2-1439。感谢 Anthony Maire。mattsicker
AddSocketAppender 现在支持 IO 缓冲。修复LOG4J2-1558ggregory
Add为 SocketAppender 添加一个生成器(不赞成使用工厂方法)。修复LOG4J2-1557ggregory
Add将构建器添加到 ServletAppender 并弃用工厂方法。修复LOG4J2-1609ggregory
Add现在,AbstractManager 实现了 AutoCloseable。修复LOG4J2-1553ggregory
Add添加了从 ConfigurationBuilder 生成 Log4j 2 样式 XML 配置文件的功能。修复LOG4J2-1528mikes
Add为 Scala 2.10 和 2.11 添加了 Logging API。修复LOG4J2-1181mikes
Add添加了从 JSON,XML 和 YAML 布局中排除堆栈跟踪的选项。修复LOG4J2-1512mikes
Add添加了 Core API Configurator.shutdown(LoggerContext,long,TimeUnit)。修复LOG4J2-1539ggregory
AddFileAppender 现在可以按需创建文件。修复LOG4J2-1501ggregory
AddRollingFileAppender 现在可以按需创建文件。修复LOG4J2-1504ggregory
Add[PatternLayout]将 ANSI 选项添加到%xThrowable。修复LOG4J2-1471ggregory
Addorg.apache.logging.log4j.core.LoggerContext 现在实现 Closeable。修复LOG4J2-1472ggregory
Add[PatternLayout]将 ANSI 选项添加到%message。修复LOG4J2-1458ggregory
Add为 FileAppender 插件创建一个 Builder,以方便将来添加属性。修复LOG4J2-1505ggregory
Add允许 Builders 是完全通用的。修复LOG4J2-1507ggregory
Add允许一个构建器继承另一个构建器。修复LOG4J2-1508ggregory
Add添加 ThreadContextMap2 接口支持方法 putAll(Map<String, String>)。修复LOG4J2-1516。感谢 Gary Gregory。rpopma
Add添加 ThreadContext.putAll(Map<String, String>)。修复LOG4J2-1519ggregory
Add添加 JUnit Rule 实现来 Management 线程上下文。修复LOG4J2-1520ggregory
Add现在,Core AbstractConfiguration 跟踪其 LoggerContext 并添加 Configuration.getLoggerContext()。修复LOG4J2-1547ggregory
Add现在,Core AbstractManager 跟踪其 LoggerContext。修复LOG4J2-1540ggregory
Add将生成器添加到 RoutingAppender 并弃用工厂方法。修复LOG4J2-1577ggregory
UpdateLog4j2 TcpSocketServer 在后台。修复LOG4J2-1604。感谢 Colin Hillman。ggregory
Update允许 RollingFileAppender 使用默认的图案布局。修复LOG4J2-1574ggregory
Update现在,自定义 Log4j 线程扩展了 Log4jThread。修复LOG4J2-1556ggregory
Update改善 TcpSocketServer 和 UdpSocketServer 的错误消息。修复LOG4J2-1605ggregory
Update将 Jackson 从 2.7.5 更新到 2.8.0. 修复LOG4J2-1458ggregory
Update将 Jackson 从 2.8.0 更新到 2.8.1. 修复LOG4J2-1494ggregory
UpdateJackson 从 2.8.1 更新到 2.8.2. 修复LOG4J2-1569ggregory
UpdateJackson 从 2.8.2 版本更新到 2.8.3 版本。修复LOG4J2-1598ggregory
Update将 LMAX Disruptor 从 3.3.4 更新为 3.3.5. 修复LOG4J2-1495ggregory
Update将 KafkaClient 端从 0.9.1.0 更新为 0.10.0.0. 修复LOG4J2-1496ggregory
Update将 KafkaClient 端从 0.10.0.0 更新为 0.10.0.1. 修复LOG4J2-1533ggregory
Update将 JMS 测试从 ActiveMQ 5.13.3 更新到了 5.13.4. 修复LOG4J2-1487ggregory
Update将 JMS 测试从 ActiveMQ 5.13.4 更新为 5.14.0. 修复LOG4J2-1551ggregory
Update将 Apache Commons Compress 从 1.12 更新到 1.13. 修复LOG4J2-1757ggregory
Update删除了不推荐使用的 Core API org.apache.logging.log4j.core.util.Constants.UTF_8.修复LOG4J2-1543ggregory
Update删除了不推荐使用的 Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T,String)。修复LOG4J2-1544ggregory
Update删除了不推荐使用的 Web API org.apache.logging.log4j.web.WebLookup.getServletContext()。修复LOG4J2-1545ggregory

版本 2.6.2 – 2016-07-05

TypeChangesBy
Fix如果复制和删除操作在重命名操作中失败,则在复制源文件后将其截断。修复LOG4J2-904。感谢 BernhardMähr。rgoers
FixCronTriggeringPolicy 没有正确设置 PatternProcessor 的 prevFileTime 值,因此滚动文件上的文件日期和时间不正确。修复LOG4J2-1250rgoers
Fix解决了可重用消息破坏流跟踪逻辑的问题。修复LOG4J2-1452。感谢 MikaelStåldal。rpopma
Fix修复 OnStartupTriggeringPolicy 中的错误,该错误使它可以在每次重新配置时翻转。添加了 minSize 属性。修复LOG4J2-1440rgoers
Fix修复了 2.6.1 网站的一些小问题。修复LOG4J2-1414。感谢 Ralph Goers。rpopma
Fix确保在记录大消息后,Layouts 用来将日志事件格式化为文本的线程本地 StringBuilders 不会保留过多的内存。修复LOG4J2-1434。感谢卢克黄油。rpopma
Add向 ConsoleAppender 添加“直接”选项以提高性能。修复LOG4J2-1395mikes
Fix将 MessageFactory2 提供给自定义 Logger 实现。修复LOG4J2-1418mikes
FixRollingRandomAccessFileManager 在启动时未正确翻转,并收到 NullPointerException。修复LOG4J2-1420rgoers
Fix解决了 UnboxUtil 忽略值 Constants.ENABLE_THREADLOCALS 并始终将非 JDK 类存储在 ThreadLocals 中的问题。修复LOG4J2-1417rpopma
Fix解决了 AsyncAppenderQueueFullPolicyTest 有时会挂起的问题。修复LOG4J2-1422rpopma
FixWindows 上的 OnStartupTriggeringPolicyTest 失败,原因是该文件已被另一个进程使用。修复LOG4J2-1445。感谢 Ludovic HOCHET。ggregory
Add(GC)ObjectMessage 和 ReusableObjectMessage 现在避免在自动装箱的原始参数上调用 toString()。修复LOG4J2-1437rpopma
Add(GC)ParameterFormatter 现在避免在自动装箱的原始消息参数上调用 toString()。修复LOG4J2-1415rpopma
AddUnboxUtil 的 StringBuilders 环形缓冲区现在可以配置。修复LOG4J2-1412rpopma
Update将 Jackson 从 2.7.4 更新到 2.7.5. 修复LOG4J2-1432ggregory
Update将 Jansi 从 1.11 更新到 1.13. 修复LOG4J2-1433ggregory
Update将 Apache Commons Compress 从 1.11 更新到 1.12. 修复LOG4J2-1444ggregory

版本 2.6.1 – 2016-06-05

TypeChangesBy
FixOnStartupTriggeringPolicy 会在启动时强制执行空文件的转换,并且会附加第二个页脚,该页脚是先前关闭时添加的。修复LOG4J2-1405rgoers
Fix修复了 ReusableParameterizedMessage 中的错误,该错误从未更新 Throwable,因此一遍又一遍地记录了第一个错误,并且没有记录后续错误。修复LOG4J2-1406。感谢 Trask Stalnaker。rpopma
Fix修复了 ReusableParameterizedMessage 中可能发生的 ArrayIndexOutOfBoundsException。修复LOG4J2-1409。感谢沙汉。rpopma
Fix添加过滤器和除去过滤器在 AbstractFilterable 中无法正常工作。修复LOG4J2-997。感谢 Maytee Chinavanichkit。rgoers
Fix将 RenameAction 更改为使用 java.nio 更好地报告重命名失败。修复LOG4J2-1032rgoers
Fix修复了 Log4j 中有关消息工厂和意外格式的误导性 WARN 日志事件。修复LOG4J2-1407ggregory
Fix将模块 log4j-liquibase 添加到 BOM POM。修复LOG4J2-1408ggregory
FixLogger 缓存现在说明了消息工厂。修复LOG4J2-1180ggregory
Fix修复属性配置中的回归以支持任意组件 ID。修复LOG4J2-1402rgoers
Update(GC)CSV 布局不应为每个日志事件创建新的 CSVPrinter。需要 Apache Commons CSV 1.4. 修复LOG4J2-1385ggregory
Update将 liquibase-core 从 3.4.2 更新到 3.5.1. 修复LOG4J2-1398ggregory
Update将 Apache Commons CSV 从 1.3 更新到 1.4. 修复LOG4J2-1399ggregory
Add与工厂相比,添加了有关插件构建器的文档。修复LOG4J2-1411mattsicker
Fix修复了 2.6 网站的一些小问题。修复LOG4J2-1394mattsicker,mikes

版本 2.6 – 2016-05-25

TypeChangesBy
Add(GC)添加了对稳定状态下无垃圾记录的支持。这包括异步 Logger,并同步记录到控制台和文件,但不包括 AsyncAppender。此版本使 GelfLayout 和 PatternLayout 中的主要模式无垃圾。修复LOG4J2-1270rpopma
Add(GC)添加了有关无垃圾记录的手册页。修复LOG4J2-1297rpopma
Add(GC)更新 Logger 包装器生成器工具,以为新的 Logger 方法生成方法。修复LOG4J2-1373rpopma
Update(GC)GelfLayout 现在确实支持无垃圾记录(compressionType = OFF)。修复LOG4J2-1356mikes
Add(GC)向 Logger 接口添加了用于记录 CharSequence 消息的方法。修复LOG4J2-1326rpopma
Add(GC)FileAppender,RollingFileAppender 和 MemoryMappedFileAppender 现在默认情况下也没有垃圾。修复LOG4J2-1344rpopma
Update(GC)ConsoleAppender 现在默认为无垃圾。此逻辑可用于所有 AbstractOutputStreamAppender 子类。修复LOG4J2-1343rpopma
Add(GC)在 Logger API 中添加了展开的 varargs 方法,并添加了 UnboxUtil 以避免在记录原始值时自动装箱。修复LOG4J2-1278rpopma
Update(GC)避免在 LoggerContext 的 getLogger 方法中分配不必要的临时对象。修复LOG4J2-1318rpopma
Update(GC)避免在 MarkerManager 的 getMarker 方法中分配不必要的临时对象。修复LOG4J2-1333rpopma
Update(GC)避免在 PatternLayout 的 NamePatternConverter 和 ClassNamePatternConverter 中分配不必要的临时对象。修复LOG4J2-1321rpopma
Add(GC)添加 MessageFactory,通过重用缓存的 ParameterizedMessage 实例来避免分配。修复LOG4J2-1271rpopma
Update(GC)参数化消息优化,以避免或至少推迟分配临时对象。修复LOG4J2-1271rpopma
Update(GC)在 DatePatternConverter 中为非 Web 应用程序提供基于 ThreadLocal 的无 gc 缓存机制。修复LOG4J2-1283rpopma
Add(GC)添加接口 StringBuilderFormattable 以启用将消息和参数转换为文本而无需分配临时对象。 ParameterizedMessage,ObjectMessage,SimpleMessage 和 ThreadDumpMessage 现在实现 StringBuilderFormattable。修复LOG4J2-1293rpopma
Update(GC)更新 PatternLayout 以利用无 gc 机制进行 LogEvent 处理。修复LOG4J2-1291rpopma
Update(GC)更新 RandomAccessFileAppender 和 RollingRandomAccessFileAppender 以利用无 gc 的 Layout.encode()方法。修复LOG4J2-1292rpopma
Add(GC)在 Layout API 中添加 encode(LogEvent,ByteBufferDestination)方法以启用将 LogEvents 转换为字节而无需创建临时对象。修复LOG4J2-1274rpopma
Fix(GC)LoggerConfig.getProperties()不应在每次调用时分配。修复LOG4J2-1281rpopma
Update(GC)改进 AppenderControl 对象的 LoggerConfig 数据结构,以避免在遍历期间为每个日志事件分配临时对象。修复LOG4J2-1272rpopma
Fix(GC)默认情况下,AsyncLogger 应该使用线程本地转换器。修复LOG4J2-1269rpopma
Fix在 JSONLayout 中将 MDC 属性生成为 JSONMap,并可以选择输出为 Map 条目列表。修复LOG4J2-623rpopma
Add添加了 YAML 布局。修复LOG4J2-1362。感谢 Gary Gregory。rpopma
Fix修复了与关机钩子相关的内存泄漏。修复LOG4J2-1387rpopma
Add记录的基准测试结果将 Log4j 2 性能与其他日志记录库进行了比较。修复LOG4J2-1179rpopma
Fix使用 Log4jLogEvent.Builder 复制 MutableLogEvent 不应不必要地获取调用者位置信息。修复LOG4J2-1382rpopma
Add布局的文档依赖性。修复LOG4J2-1011mikes
Add放置第一个 N 个封装 Component 的图案。修复LOG4J2-621。感谢 Lee Theobald,Kamal Mettananda 和 Gary Gregory。ggregory
Add支持将配置合并到复合配置。修复LOG4J2-494。感谢 Philipp Knobel。rgoers
Add选择不记录 GelfLayout 中已记录 Throwables 的堆栈跟踪的选项。修复LOG4J2-1357mikes
Update将 SLF4J 从 1.7.13 更新到 1.7.21. 修复LOG4J2-1375rpopma
Update将测试从 Logback 1.1.3 迁移到 1.1.7. 修复LOG4J2-1374rpopma
Update将 Apache Commons CSV 从 1.2 更新到 1.3. 修复LOG4J2-1384ggregory
FixXMLLayout 缩进,但不是第一个子标记(事件)。修复LOG4J2-1372。感谢 Kamal Mettananda 和 Gary Gregory。rgoers
Fix属性配置不支持 Logger 上的 includeLocation 属性。修复LOG4J2-1363rgoers
Fix未将 ConfigurationSource 保存为 BuiltConfigurations,因此监视间隔无效。修复LOG4J2-1263rgoers
Fix“ xz”压缩会生成未压缩的纯文本文件。修复LOG4J2-1369。感谢加里·格雷戈里(Alex Gary Bregch)和 Alex Birch。ggregory
Update(Log4j-internal)为某些消息类型提供消息文本作为 CharSequence,以优化某些布局。修复LOG4J2-1365mikes
Fix(Log4j 内部)StatusLogger 在记录参数化消息时丢弃了异常。修复LOG4J2-1368rpopma
Add添加一个 AutoCloseable ThreadContext 类:CloseableThreadContext。修复LOG4J2-1348。感谢 Greg Thomas,Gary Gregory。ggregory
Update(文档)澄清控制 Log4j 行为的属性的文档。修复LOG4J2-1345rpopma
Fix1.2 API 模块中的 LoggerFactory 与 1.2 不兼容。修复LOG4J2-1336。感谢 Zbynek Vyskovsky。ggregory
Fix当用配置文件中最后一个修改日期更早的配置文件替换 Windows 时,在 Windows 下不会触发配置重新加载。修复LOG4J2-1354。感谢 Arkadiusz Adolph。ggregory
FixLog4jServletContextListener 的异常阻止了 jetty-maven-plugin 的运行。修复LOG4J2-1346
Fix(性能)AsyncLogger 性能优化:避免在热路径中调用 instanceof TimestampMessage。修复LOG4J2-1339rpopma
Fix改善 Async Logger 后台线程中的错误处理:新的默认异常处理程序不再抛出错误。修复LOG4J2-1324rpopma
Fix配置文件错误未显示原因异常。修复LOG4J2-1309ggregory
Add在 PatternLayout 中为线程 ID 和优先级添加模式转换器。修复LOG4J2-1299ggregory
Fix将流日志记录文本从“ entry”更改为“ Enter”,将“ exit”更改为“ Exit”。修复了LOG4J2-1289ggregory
Fix使默认 MessageFactory 可配置。修复LOG4J2-1284rpopma
Fix弃用 org.apache.logging.log4j.util.MessageSupplier。修复LOG4J2-1280ggregory
Fix现在,采用“供应商”参数的 Logger 方法可以正确处理提供的值为“消息”的情况。修复LOG4J2-1280rpopma
Fix对于具有带有法语语言环境的 MMM 的格式,FixedDateFormat 是错误的。修复LOG4J2-1268rpopma
Update添加增强的进入和退出方法。修复LOG4J2-1255rgoers
Add将关闭方法添加到 LogManager。修复LOG4J2-124rgoers
Fix如果正在进行关机,则 LoggerContext 的创建将失败。 LogManager 将默认改为使用 SimpleLogger。修复LOG4J2-1222rgoers
Add添加了异步 Logger 超时 await 策略,并将其设置为异步 Logger 的默认 await 策略。这样可以防止在 Solaris 上发生罕见的死锁。修复LOG4J2-1221。感谢 Michael Barker。rpopma
Add添加了选项,如果异步 Logger 环形缓冲区或异步附加器队列已满,则丢弃低于特定日志级别的事件。修复LOG4J2-1080rpopma
Add使 PatternLayout 的页眉和页脚接受模式。修复LOG4J2-1237。感谢 Mike Calmus,Gary Gregory。ggregory
Add使页眉和页脚值在 JSONLayout 中可自定义。修复LOG4J2-1244。感谢 Anshu Garg,Remko Popma 和 Gary Gregory。ggregory
Add使 CSV 布局的页眉和页脚接受样式。修复LOG4J2-1245ggregory
AddSMTP Appender 的动态主题。修复LOG4J2-1192。感谢加里·格雷戈里(JörgBretschneider)。ggregory
AddFormattedMessage,MessageFormatMessage 和 StringFormattedMessage 应该支持传递语言环境以确保适当的格式。修复LOG4J2-1277。感谢 Gary Gregory 和 Ludovic Hochet。ggregory
FixTlsSyslogFrame 错误地计算了消息长度。修复LOG4J2-1260。感谢布雷克·戴(Blake Day),加里·格里高利(Gary Gregory)。ggregory
FixAsync DynamicThresholdFilter 不使用日志事件的上下文 Map。修复LOG4J2-1258。感谢弗朗西斯·拉隆德(Francis Lalonde)。ggregory
Fix一年中最后一周的日志轮换不正确。修复LOG4J2-1232。感谢尼古拉。ggregory
Fix修复了图案布局中的破碎纳米时间。修复LOG4J2-1248rpopma
FixJSONLayout 不会在日志事件之间添加逗号。修复LOG4J2-908。感谢 Konstantinos Liakos,Patrick Flaherty,Robin Coe 和 Gary Gregory。ggregory
Fix不要串联 SYSLOG 消息。修复LOG4J2-1230。感谢 Vladimir Hudec,Ralph Goers 和 Gary Gregory。ggregory
Fixorg.apache.logging.log4j.core.net.TcpSocketManager 和其他类不向状态 Logger 报告内部异常。修复LOG4J2-1238ggregory
Fix修复文档,以指定异步 Logger 使用的正确的默认 await 策略。修复LOG4J2-1212rpopma
Fix文档/ XSD 不一致。修复LOG4J2-1215。感谢 Erik Kemperman。ggregory
FixLoggerMessageSupplierTest 和 LoggerSupplierTest 对区域设置敏感。修复LOG4J2-1276。感谢 Ludovic Hochet。ggregory
Update将 Jackson 从 2.7.3 更新到 2.7.4. 修复LOG4J2-1380ggregory
Update将 Jackson 从 2.7.0 更新到 2.7.2. 修复LOG4J2-1304ggregory
Update将 LMAX Disruptor 从 3.3.2 更新到 3.3.4. 修复LOG4J2-1253ggregory
Update将 SLF4J 从 1.7.12 更新到 1.7.13. 修复LOG4J2-1219ggregory
Update将 Jackson 从 2.6.3 更新到 2.6.4. 修复LOG4J2-1239ggregory
Update将 Jackson 从 2.6.4 更新到 2.7.0. 修复LOG4J2-1249ggregory
Update将 Jackson 从 2.7.2 更新到 2.7.3. 修复LOG4J2-1351ggregory
Update将 Liquibase 从 3.3.5 更新到 3.4.2. 修复LOG4J2-1240ggregory
Update将 KafkaClient 端从 0.9.0.0 更新到 0.9.0.1. 修复LOG4J2-1294ggregory
Update将 javax.mail 从 1.5.4 更新到 1.5.5. 修复LOG4J2-1352ggregory
Update将 Apache Commons Compress 从 1.10 更新到 1.11. 修复LOG4J2-1358ggregory
Update将 Google java-allocation-instrumenter 从 3.0 更新到 3.0.1. 修复LOG4J2-1388rpopma
Update属性示例中的值具有误导性。修复LOG4J2-1233。感谢 Bahri Gencsoy。ggregory
Fix修复了 JUL 网 bridge 问题,其中在 null 时使用 LogRecord.getParameters()。修复LOG4J2-1251。感谢 Romain Manni-Bucau。mattsicker
Fix修复“流量跟踪”文档中的错字。修复LOG4J2-1254。感谢 Josh Trow。rpopma
Fix在 OSGi 环境中初始化时,BundleContextSelector 的 ClassNotFoundException。修复LOG4J2-920。感谢 Ludovic Hochet。mattsicker
Update从不需要序列化的类中删除它。修复LOG4J2-1300mattsicker
Add在每个组件简介页面中添加指向运行时依赖项的文档链接。修复LOG4J2-1303mattsicker
Fix修复 RollingAppenderNoUnconditionalDeleteTest 重复测试运行失败的问题。修复LOG4J2-1275。感谢 Ludovic Hochet。mattsicker
Fix停止在 Log4jServletContextListener.contextDestroyed()中引发不必要的异常。修复LOG4J2-1262mattsicker
AddJeroMqAppender 应该支持布局。修复LOG4J2-1252mattsicker
Fix如果事件为 null,则 MapLookup.lookup 中的 NullPointerException。修复LOG4J2-1227。感谢 Olivier Lemasle。mattsicker
UpdateJeroMqAppender 应该使用 ShutdownCallbackRegistry 而不是运行时钩子。修复LOG4J2-1306mattsicker
AddPatternLayout 选项可限制文本的长度。修复LOG4J2-1217。感谢 Thies Wellpott。mattsicker
Update无需预先指定 appender 等。属性文件配置格式的标识符。修复LOG4J2-1308mattsicker
Fix添加一个 Log4jLookup 类,以帮助编写相对于 log4j2.xml 的日志文件。修复LOG4J2-1050。感谢亚当·瑞特(Adam Retter)。mattsicker
Add添加 JNDI 查找文档。修复LOG4J2-1133mattsicker
FixJndiLookup 盲目转换为 String,应使用 String.valueOf()。修复LOG4J2-1310mattsicker
Updateorg.apache.logging.log4j.core.LoggerContext#updateLoggers 应该调用 firePropertyChangeEvent。修复LOG4J2-1206mattsicker
FixLog4jWebInitializerImpl:使用 Thread 代替 Class 作为后备类加载器。修复LOG4J2-248mattsicker
AddPatternLayout:在 equals 替换参数中可能的变量替换。修复LOG4J2-1169。感谢 Gerald Kritzinger。mattsicker
Update更新 Log4j 1.x 迁移指南,以包含有关系统属性查找语法更改的信息。修复LOG4J2-1322mattsicker
Fix修复 Google App Engine 上 ReflectionUtil 中的 NoClassDefFoundError。修复LOG4J2-1330mattsicker

版本 2.5 – 2015-12-06

TypeChangesBy
Fix减少绑定队列中状态消息的内存使用;支持零长度队列,不存储任何消息。修复LOG4J2-324rpopma
Fix修复了复制到 Map 到远程 Linux 主机的目录时的翻转错误。修复LOG4J2-1173rpopma
Add添加了对由翻转触发的自定义删除操作的支持。修复LOG4J2-435。感谢 Robert Schaft。rpopma
Update将 PurgePolicy 和 IdlePurgePolicy 添加到 RoutingAppender。修复LOG4J2-649。感谢 Aleksey Zvolinsky。rgoers
Update删除 ConfigurationMonitor。 WatchManager 现在用于检查配置更改。修复LOG4J2-1202rgoers
Fix使 KafkaAppender 支持 SerializedLayout。修复LOG4J2-1195。感谢 Melvin Du。mikes
Add允许随时发生过渡。添加 CronTriggeringPolicy。修复LOG4J2-89rgoers
Fix允许在重新配置期间修改触发策略和过渡策略。修复LOG4J2-381。感谢 Anthony Baldocchi。rgoers
Add在过滤器和 PatternSelector 中添加对 JSR 223 脚本的支持。修复LOG4J2-1136rgoers
Add在文件重命名操作中为源文件和目标文件添加吸气剂。修复LOG4J2-1168。感谢 Steven Swor。ggregory
Add为 org.apache.logging.log4j.core.appender.rolling.action 中的类添加吸气剂。修复LOG4J2-1175ggregory
Add添加了系统属性,以允许用户控制是否应在后台格式化消息。修复LOG4J2-898rpopma
Add支持 JDBC 的 CommonDataSource.setLogWriter(PrintWriter)和 java.sql.DriverManager.setLogWriter(PrintWriter)的用例。修复LOG4J2-1178ggregory
Add支持 java.sql.DriverManager.setLogStream(PrintStream)的用例。修复LOG4J2-1187ggregory
Fix收集位置信息时的性能提高。修复LOG4J2-1029。感谢 Stefan Leonhartsberger。rpopma
Fix使用 AsyncLoggerContextSelector 修复了 Tomcat 上的 ThreadLocal 泄漏[AsyncLogger $ Info]。修复LOG4J2-1172rpopma
Fix修复了当 log4j jar 位于 Tomcat 的 lib 文件夹中时的内存泄漏。修复LOG4J2-1176rpopma
FixLogger 缓存不考虑消息工厂。修复LOG4J2-1180。感谢 MikaelStåldal。ggregory
Fix文档:修复了站点和手册页的一些小问题。修复LOG4J2-879rpopma
Fix当日志事件时间等于翻转时间时,RollingFileAppender 也应翻转,而不仅仅是在以后。修复LOG4J2-999。感谢琼·巴拉格罗(JoanBalagueró)。rpopma
Fix修复了以下错误:在 web.xml 中省略\ 元素会导致错误的 log4j 初始化,从而在停止或重新加载 Web 应用程序时导致内存泄漏。修复LOG4J2-873。感谢 LC,Martin Dickins,卢克·伍德沃德(Luke Woodward)。rpopma
Fix更好的 Web 应用程序对异步 Logger 的支持:修复了将日志记录 jar 放在容器的 Classpath 中且配置文件使用 AsyncRoot/AsyncLogger 时发生的内存泄漏。问题是第一个 Web 应用程序启动了 Disruptor 后台线程[AsyncLoggerConfig-1],但直到所有 Web 应用程序都停止后才停止。现在,每个 Web 应用程序都有其自己的 Disruptor,该 Disruptor 与 Web 应用程序一起停止/启动。修复LOG4J2-323rpopma
Fix更好的 Web 应用程序对异步 Logger 的支持:现在可以使用 AsyncLoggerContextSelector 使所有 Logger 异步时,将记录 jar 放在容器的 Classpath 中。这解决了在停止并重新启动 Web 应用程序后日志记录将停止工作的问题。修复LOG4J2-493rpopma
Fix如果可用,请使用 servlet 上下文名称作为 Logger 上下文名称。修复LOG4J2-1171rpopma
Fix修复了 Tomcat8 中的 ThreadLocal 内存泄漏,该泄漏在不使用异步 Logger 时提到了 AsyncLogger。修复LOG4J2-1159rpopma
FixAbstractConfiguration 执行程序应使用 DaemonThreadFactory。修复LOG4J2-1166rpopma
Fix改进 Log4j 初始化状态消息。修复LOG4J2-1165rpopma
Fix网站更正和更新。修复LOG4J2-1156rpopma
FixLog4J JUL 适配器在 java.util.function.Supplier<String>传递的 String 上使用 MessageFormat。修复LOG4J2-1158。感谢 Michael Fortin,Gary Gregory。ggregory
Fixorg.apache.logging.log4j.core.Logger 应该是可序列化的。修复LOG4J2-801mattsicker
Fix修复了用@PluginComments 的类的编译错误。修复LOG4J2-1157。感谢 Norbert Bartels。mattsicker
Fix修复有关 Converter 的插件文档错误。修复LOG4J2-948。感谢安德鲁·弗劳德。mattsicker
Fix在 Log4j 创建的所有线程名称前添加“ Log4j2-”作为前缀。修复LOG4J2-1193ggregory
Fix文档与 LoggerNameLevelRewritePolicy 的参数不匹配。修复LOG4J2-1194。感谢亚当·布林。ggregory
FixMongoDbConnection 不会关闭 MongoClient。修复LOG4J2-1196。感谢 RenéZanner。mattsicker
Update将 Jackson 从 2.6.2 更新到 2.6.3. 修复LOG4J2-1174ggregory
Update将 kafka-clients 从 0.8.2.2 更新到 0.9.0.0. 修复LOG4J2-1207ggregory

2.4.1 版– 2015-10-08

TypeChangesBy
Add允许 PatternLayout 根据某些选择条件选择要使用的模式。修复LOG4J2-1129rgoers
Add向 PatternLayout 添加%equals 以测试并用字符串替换模式。修复LOG4J2-1145ggregory
Add将%equalsIgnoreCase 添加到 PatternLayout 以测试并用字符串替换模式。修复LOG4J2-1147ggregory
Add将%notEmpty 添加到 PatternLayout 以避免输出所有变量均为空的模式。修复LOG4J2-1146ggregory
Add增加了在 AsyncAppender 上设置关闭超时的可能性。修复LOG4J2-1020mikes
Fix修复了在配置属性文件中仅定义了根 Logger(而没有命名 Logger)时 NullPointerException 的问题。修复LOG4J2-1153rpopma
Fix修复了不使用 RollingFileAppender 将 Headers 写入第一个文件的错误。修复LOG4J2-1140rpopma
Fix修复了带有时区的 PatternLayoutsched 义日期模式始终呈现默认日期格式的错误。修复LOG4J2-1149rpopma
Fix修复了 Log4jLookup。修复LOG4J2-1050rpopma
Fix通过使用直接的 ThreadLocal 字段而不是 ThreadLocal 的子类来修复 Web 应用程序中潜在的内存泄漏。修复LOG4J2-1142rpopma
Fix滚动压缩已损坏:日志文件已重命名为.zip,但未压缩。修复LOG4J2-1135rpopma
Fix无法在 Oracle Weblogic 12c 上解析 log4j2.xml。修复LOG4J2-1127ggregory
Fix不要使用 MongoDB 驱动程序 2.13.3 不推荐使用的方法。修复LOG4J2-1132ggregory
Fix在模式布局中添加%markerSimpleName 应该评估为标记名称(而不是 toString())。修复LOG4J2-1144ggregory
Fix网站更正和更新。修复LOG4J2-1126ggregory
Update性能改进:将 Java 8 快速 ISO-8859-1 字符串反向移植到 byte []编码器到 AbstractStringLayout。修复LOG4J2-1151rpopma
Update将 Strings 转换为 byte []数组时的性能提高。修复LOG4J2-935rpopma
Update将 MongoDB 驱动程序从 2.13.3 更新到 3.0.4. 修复LOG4J2-1040ggregory
Update重复使用 StringBuilder 可以提高基于字符串的布局的性能:CSV,GELF,HTML,RFC524,Syslog。修复LOG4J2-1128ggregory
Update将 mongo-java-driver 从 2.13.2 更新到 2.13.3. 修复LOG4J2-1131ggregory
Update不要使用不推荐使用 Jackson 的方法。修复LOG4J2-1138ggregory
Update将 Jackson 从 2.6.1 更新到 2.6.2. 修复LOG4J2-1139ggregory
Update将 kafka-clients 从 0.8.2.1 更新到 0.8.2.2. 修复LOG4J2-1150ggregory

版本 2.4 – 2015-09-20

TypeChangesBy
Add通过属性添加对配置的支持。修复LOG4J2-635rgoers
Add添加 ConfigurationBuilder 以进行编程配置。修复LOG4J2-952rgoers
Update将 Java 平台从 Java 6 更新到 7.从该版本开始,log4j 2 需要 Java7.修复了LOG4J2-1017ggregory
Add添加了对 Java 8 lambda 表达式的支持,以仅当启用了请求的日志级别时才懒惰地构造日志消息。修复LOG4J2-599rpopma
Add更新了 Logger 包装器生成器工具,以添加 Java 8 lambda 对自定义日志级别的支持。修复LOG4J2-1118rpopma
AddApache Kafka 的新 Appender。修复LOG4J2-1107。感谢 MikaelStåldal。ggregory
AddZeroMQ 的新发布者 Appender(使用 JeroMQ)。修复LOG4J2-1113。感谢 Gary Gregory。ggregory
Add为参数和事件记录添加逗号分隔值(CSV)布局。修复LOG4J2-1088。感谢 Gary Gregory。ggregory
UpdatePatternLayout 时间戳格式设置性能改进:用 Apache Commons FastDateFormat 替换了同步的 SimpleDateFormat。更好的缓存使时间戳格式化速度提高了约 3-30 倍。修复LOG4J2-812rgoers
UpdatePatternLayout 时间戳格式化性能的改进:sched 义的日期格式(以及使用句点“.”毫秒分隔符而不是“,”的变体)现在的格式设置比其他日期格式快 2-10 倍。修复LOG4J2-1097rpopma
UpdateParameterizedMessage :: getFormattedMessage 的性能提高了约 2 倍。修复LOG4J2-1096rpopma
UpdateLoggerConfig 性能改进:避免不必要的锁获取,使用更高效的数据结构。修复LOG4J2-1120rpopma
Update通过缓存和重用 ThreadLocal StringBuilder 来提高 PatternLayout 性能。修复LOG4J2-1125rpopma
Fix修复了重新配置时潜在的竞争条件。引入了 ReliabilityStrategy,以促进不同机制之间的切换,以防止日志事件在重新配置时被丢弃。修复LOG4J2-1121rpopma
Update将线程名称添加到状态 Logger 布局。修复LOG4J2-1114ggregory
Fix当配置位置是文件路径时,Core Configurator.initialize(String,ClassLoader,String)无法工作。修复LOG4J2-1123ggregory
FixConsoleAppender 中的 OutputStreamManager 泄漏 Management 器。修复LOG4J2-1117。感谢 Marcus Thiesen。ggregory
Fix停止追加程序时,将待处理事件写入 Flume。修复LOG4J2-1044rgoers
Fix将 null 传递给 java.util.logging.Logger.setLevel()时发生 NullPointerException。修复LOG4J2-1108。感谢 MikaelStåldal。ggregory
Fixorg.apache.logging.log4j.jul.CoreLogger.setLevel()检查安全许可为时已晚。修复LOG4J2-1110ggregory
Remove删除了实验接口 LevelLogger,该接口被错误地掌握了。rpopma
Update插入 Logger 属性时传递日志事件。修复LOG4J2-1010rgoers
Add添加 Core Configurator API 以更改 Logger 的级别。修复LOG4J2-1090ggregory
Add添加 API org.apache.logging.log4j.Level.isInRange(Level,Level)。修复LOG4J2-1105。感谢 Gary Gregory。ggregory
Add添加一个 LevelRangeFilter 类。修复LOG4J2-1106。感谢 Gary Gregory。ggregory
Add增加了对图案布局中系统纳秒时间的支持。修复LOG4J2-1074rpopma
Add添加了对文件翻转时压缩为 bzip2 格式的支持。修复LOG4J2-1075rpopma
Add翻转时支持其他 Apache Commons Compress 压缩格式:Deflate,Pack200,XY。修复LOG4J2-1077ggregory
Add用于 Liquibase 集成的新模块。修复LOG4J2-767。感谢 MikaelStåldal。ggregory
Add用于更改日志事件级别的新 RewritePolicy。修复LOG4J2-1023。感谢 MikaelStåldal。ggregory
Add添加一种基于 RoutingAppender 布局中的%marker 路由消息的方法。修复LOG4J2-1015。感谢 Daniel Marcotte。ggregory
Add添加一个 Log4jLookup 类,以帮助编写相对于 log4j2.xml 的日志文件。修复LOG4J2-1050。感谢亚当·瑞特(Adam Retter)。ggregory
Add添加 API org.apache.logging.log4j.LogManager.getFormatterLogger()。修复LOG4J2-1057ggregory
Add公开 Log4jContextFactory 的 ShutdownCallbackRegistry。修复LOG4J2-1066。感谢查尔斯·艾伦。ggregory
FixLogManager 中带有 java.util.Map 的 StatusLogger WARN 事件误导性。修复LOG4J2-1084。感谢 Philipp Schneider。ggregory
Fix在 Google App Engine 上启动应用程序时发生 NoClassDefFoundError。修复LOG4J2-1051。感谢 Lukasz Lenart。ggregory
FixExtendedThrowablePatternConverter 不会打印抑制的异常。修复LOG4J2-684。感谢 Joern Huxhorn,Mauro Molinari。ggregory
Fix反序列化 JSON 日志事件时,对 JSON 转义字符的处理不当。修复LOG4J2-1069。感谢 Sam Braam。ggregory
Fix使用 TcpSocketServer SerializedLayout 时未记录异常。修复LOG4J2-1068。感谢 Andy McMullan。ggregory
FixThrowableProxy getExtendedStackTraceAsString 在反序列化的嵌套异常上引发 NPE。修复LOG4J2-1067。感谢 Sam Braam。ggregory
Fix现在,AsyncAppender 在捕获 InterruptedException 之后重置线程中断标志。修复LOG4J2-1049。感谢 Robert Schaft。rpopma
FixFileConfigurationMonitor 不必要地调用 System.currentTimeMillis()导致 CPU 使用率很高。修复LOG4J2-1048。感谢 Nikhil。rpopma
Fixlog4j-1.2-api NDC pop()和 peek()中的向后兼容性问题。修复LOG4J2-1037。感谢 Marc Dergacz。ggregory
Fix自定义 java.util.logging.Level 给出的 Log4j Level 为空,并导致 NPE。修复LOG4J2-1025。感谢 MikaelStåldal。ggregory
FixSimpleLogger 通过调用 ThreadContext.getContext()而不是 getImmutableContext()来创建不必要的 Map 对象。修复LOG4J2-1033。感谢 MikaelStåldal。ggregory
FixHighlightConverter 不遵守 noConsoleNoAnsi。修复LOG4J2-1026ggregory
FixZipCompressAction 使文件打开,直到发生 IO 错误时出现 GC。修复LOG4J2-1019ggregory
Fix当发生 IO 错误时,GzCompressAction 会将文件保持打开状态,直到 GC。修复LOG4J2-1020ggregory
Fix布局默认字符集的文档不正确。修复LOG4J2-1038。感谢吉利。ggregory
Fix套接字和 Syslog 附加程序在启动时不会考虑超时。修复LOG4J2-1042。感谢 Guillaume Turri。ggregory
Fix循环抑制的异常引发 StackOverflowError。修复LOG4J2-934。感谢 Kenneth Gendron。ggregory
Fix循环异常原因引发 StackOverflowError。修复LOG4J2-1046。感谢 Kenneth Gendron。ggregory
Fix使用 System.nanoTime()测量时间间隔。修复LOG4J2-982。感谢 Mikhail Mazurskiy。ggregory
Fix通过 URL 资源外部化 log4j2.xml。修复LOG4J2-1045。感谢 GünterAlbrecht。ggregory
FixLog4jMarker#contains(String)不遵守 org.slf4j.MarkerContract。修复LOG4J2-1058。感谢 Daniel Branzea。ggregory
FixLog4jMarker#contains(Marker)不遵守 org.slf4j.MarkerContract。修复LOG4J2-1060ggregory
FixLog4jMarker#remove(Marker)不遵守 org.slf4j.MarkerContract。修复LOG4J2-1061ggregory
FixLog4jMarker#add(Marker)不遵守 org.slf4j.MarkerContract。修复LOG4J2-1062ggregory
Fixorg.apache.logging.slf4j.Log4jMarker 不实现 org.slf4j.Marker.equals(Object)org.slf4j.Marker.hashCode()。修复LOG4J2-1064ggregory
Fix如果追加到现有文件,则不应在应用程序启动时编写布局标题。修复 LOG4J2-1030.修复LOG4J2-889。感谢 Kenneth Leider 的 MaciejKaraś。rpopma
Fix澄清将异步与同步 Logger 结合使用的文档。修复LOG4J2-918rpopma
Fix如果某些日志事件字段为 null,则 GelfLayout 引发异常。修复LOG4J2-1078。感谢 MikaelStåldal。ggregory
Update在 FlumeAvroManager 中支持 batchSize。修复LOG4J2-1044rgoers
Update定义 org.apache.logging.log4j.Marker.equals(Object)和 org.apache.logging.log4j.Marker.hashCode()。修复LOG4J2-1065ggregory
Update避免在 org.apache.logging.slf4j.Log4jMarker.iterator()中创建临时数组对象。修复LOG4J2-1063ggregory
Updatelog4j-web-2.1 应该解决 JBOSS EAP 6.2 中的错误。修复LOG4J2-890。感谢 Hassan Kalaldeh,Robert Andersson 和 Remko Popma。ggregory
UpdateMongoDB 附加程序,用户名和密码应该是可选的。修复LOG4J2-403。感谢 Jeremy Lautman 的 Poorna SubhashP。ggregory
Update在 Google AppEngine 上运行时,Log4j2 尝试使用 SystemClassLoader。修复LOG4J2-1035ggregory
Update允许在 MDC 模式转换器中指定键列表。修复LOG4J2-1022rgoers
Update修复 SimpleLogger.logMessage()中的 FindBugs DM_DEFAULT_ENCODING 错误并简化代码。修复LOG4J2-959ggregory
Update将 Apache Flume 从 1.5.2 更新到 1.6.0. 修复LOG4J2-1036ggregory
Update将 MongoDB 驱动程序从 2.11.2 更新到 2.13.2. 修复LOG4J2-1041ggregory
Update将数据库测试从 H2 1.3.175 更新到 1.3.176. 修复LOG4J2-1018ggregory
Update将 Java Mail 从 1.5.2 更新到 1.5.4. 修复LOG4J2-1070ggregory
Update将 Jackson 从 2.5.3 更新到 2.5.4. 修复LOG4J2-1079ggregory
Update将 Jackson 从 2.5.4 更新到 2.6.0. 修复LOG4J2-1879ggregory
Update将 Jackson 从 2.6.0 更新到 2.6.1. 修复LOG4J2-1092ggregory
Update将 Apache Commons Compress 从 1.9 更新到 1.10. 修复LOG4J2-1104ggregory

版本 2.3 – 2015-05-09

TypeChangesBy
FixGelfLayout 的 compressionType 参数定义不正确。修复LOG4J2-1009。感谢 MikaelStåldal。ggregory
Fixorg.apache.logging.log4j.core.config.plugins.util.ResolverUtil.extractPath(URL)错误地将''字符转换为空格。修复LOG4J2-1008。感谢 Ralph Goers,Gary Gregory。ggregory
Fixorg.apache.logging.log4j.core.util#fileFromUri(URI uri)错误地将''字符转换为空格。修复LOG4J2-1007。感谢 Ralph Goers,Gary Gregory。ggregory
Fix当应该将 JUL Logger.throwingMap 为 ERROR 时,将其错误 Map 为 ERROR。修复LOG4J2-1003。感谢 Dan Armbrust。ggregory
Fix初始化控制台附加程序和 JANSI 之后,System.out 不再起作用。修复LOG4J2-965。感谢 Khotyn Huang。ggregory
Update使 org.apache.logging.log4j.core.Logger#updateConfiguration 受保护。修复LOG4J2-998。感谢 Mariano Gonzalez。ggregory
Update将 UTF-8 常量从 Charsets 移到 Constants 类。删除字符集类。修复LOG4J2-995rgoers
Fix如果追加程序线程在重新配置期间创建了新的 Logger,则会发生死锁。修复LOG4J2-993rgoers
Fix异步根 Logger 配置应默认将 includeLocation 设置为 false。修复LOG4J2-991。感谢 Ryan Rupp。rpopma
FixAbstractFilter 不应实现 equals()和 hashCode()。修复LOG4J2-985。感谢 Sean Dawson。rpopma
AddPatternLayout%highlight 支持%style 之类的 noConsoleNoAnsi。修复LOG4J2-984。感谢 JonasHöpfner。ggregory
Add从文本格式修饰符的结尾截断。修复LOG4J2-926。感谢 David Ohana。ggregory
FixBurstFilter 中的数字溢出未正确处理。修复LOG4J2-980。感谢 Mikhail Mazurskiy。ggregory
FixProviderUtil 中的解锁不正确。修复LOG4J2-981。感谢 Mikhail Mazurskiy。ggregory
FixKeyStoreConfiguration.createKeyStoreConfiguration()忽略 keyManagerFactoryAlgorithm。修复LOG4J2-966ggregory
Fix将 MonitorInterval 与 YAML 配置文件格式一起使用会导致 JSONParseException。修复LOG4J2-976。感谢 Matt Quinn。ggregory
FixStringFormattedMessage 序列化不正确。修复LOG4J2-964。感谢 JonneJyrylä。ggregory
Fix每次重新配置日志时,都会将新的 StatusLoggerAdmin 侦听器添加到 StatusLogger。修复LOG4J2-947。感谢 Stefan Wehner。ggregory
FixSyslogLayout 包含额外的空间。修复LOG4J2-968。感谢 Paul D Johe。ggregory
Fix无法读取所有属性的 log4j2.component.properties。修复LOG4J2-967。感谢 Stefan Wehner。ggregory
FixSyslog 消息中的另一个错误优先级。修复LOG4J2-971。感谢 Paul D Johe。ggregory
Fixorg.apache.logging.log4j.core.net.ssl.TlsSyslogInputStreamReader 不需要创建临时 Integer 对象。修复LOG4J2-972ggregory
FixEventLogger 文档中的错字。修复LOG4J2-974。感谢 DanielGalán 和 Martins。ggregory
Update将 LMAX Disruptor 从 3.3.0 更新到 3.3.2. 修复LOG4J2-988ggregory
Update将测试从 Logback 1.1.2 迁移到 1.1.3. 修复LOG4J2-987ggregory
Update将使用 ActiveMQ 的测试从 5.10 更新到 5.11.1. 修复LOG4J2-988ggregory
Update将 Jackson 从 2.5.1 更新到 2.5.3. 修复LOG4J2-1004ggregory
Update将 Slf4j 从 1.7.7 更新到 1.7.12. 修复LOG4J2-1005ggregory

版本 2.2 – 2015-02-22

TypeChangesBy
Fix(JMX)为避免在重新启动 Web 应用程序时出现内存泄漏,将从 Web 应用程序中的调用者线程发送 JMX 通知。对于非 Web 应用程序,像以前一样从后台线程发送通知。修复LOG4J2-938。感谢 Mauro Molinari。rpopma
Fix缺少 toUpperCase(Locale.ENGLISH)。修复LOG4J2-957。感谢 Fatih Guleryuz。ggregory
Fix手册指的是路由的“ AppenderRef”属性,应为“ ref”。修复LOG4J2-956。感谢 David Kellerman。ggregory
Update文档:阐明系统属性以控制状态 Logger,改进故障排除常见问题解答条目。修复LOG4J2-955rpopma
UpdatePropertiesRewritePolicy 示例中的属性名称不正确。修复LOG4J2-950。感谢乔尔·爱德华兹(Joel Edwards)。ggregory
Fix当事件以 000 毫秒记录时,Log4j Flume 追加器未将毫秒添加到事件 Headers 中。修复LOG4J2-944。感谢 Vinayaka Ramachandra。ggregory
Add允许 JSON 布局每行创建一个紧凑的日志记录。修复LOG4J2-941。感谢 Konstantinos Liakos。ggregory
AddHTML 布局不应将属性最小化用于 hr noshade。修复LOG4J2-933。感谢 gmail.com 的 ppiman。ggregory
Add在配置中指定 SyslogAppender 连接超时值。 SyslogAppender 采用新参数 connectTimeoutMillis。修复LOG4J2-895ggregory
Add在配置中指定 SocketAppender 连接超时值。 SyslogAppender 采用新参数 connectTimeoutMillis。修复LOG4J2-899ggregory
FixLog4j 1.2 Bridge 无法在 Category.getEffectiveLevel()中正确 Map 所有级别。修复LOG4J2-924。感谢 Ryan Rupp。ggregory
FixConsoleAppender 在 createAppender 方法中缺少@PluginFactory 注解。修复LOG4J2-931。感谢 Robert Gacki。ggregory
Fix如果 XInclude API 不可用,则记录系统无法初始化。修复LOG4J2-919。感谢 David Johle。ggregory
FixThrowableProxy.getExtendedStackTraceAsString 导致 NullPointerException。修复LOG4J2-914。感谢 Kaj Bjurman。ggregory
FixXML 配置不会报告有关 XInclude 解析器配置问题的完整错误消息。修复LOG4J2-912ggregory
FixClassLoaderContextSelector 使用 ClassLoader.toString()作为键。修复LOG4J2-903。感谢 Mauro Molinari。ggregory
FixThrowableProxy 抛出 NoClassDefFoundError。修复LOG4J2-834。感谢 Nikita Koval,Leonard Broman 和 Thiago Kronig。ggregory
Fix将 JULMap 到 Log4j2 时,在筛选器上发生 NullPointerException。修复LOG4J2-893ggregory
FixJUL 适配器不会将 Log4j'2 FATAL 级别 Map 到 JUL 级别。修复LOG4J2-892ggregory
FixAbstractLifecycle 不应实现 equals()和 hashCode()。修复LOG4J2-881。感谢 Mariano Gonzalez。ggregory
Fixorg.apache.log4j.BasicConfigurator.configure()的 Javadoc 不正确。修复LOG4J2-897ggregory
FixAbstractLifecycle 不应实现 equals()和 hashCode()。修复LOG4J2-891ggregory
Fix[docs]在 Web 应用程序中使用 Log4j 2:更新示例(Log4jWebLifeCycle 不可见)。修复LOG4J2-946。多亏了 artemonster。ggregory
UpdateSyslogAppender 的更新文档:“未提供结构化 ID 名称”。修复LOG4J2-901。感谢 Siegfried Greisinger 的 TihomirMeščić。ggregory
Update从 Jackson 2.5.0 更新到 2.5.1. 修复LOG4J2-958ggregory
Update从 Jackson 2.4.4 更新到 2.5.0. 修复LOG4J2-925ggregory
Update将 Jackson 从 2.4.3 更新到 2.4.4. 修复LOG4J2-910ggregory
Update将 Jackson 从 2.4.2 更新到 2.4.3. 修复LOG4J2-881ggregory
Update将 maven-core 从 3.1.0 更新到 3.2.3. 修复LOG4J2-882ggregory
Update将测试从 org.apache.felix.framework 4.2.1 更新到 4.4.1. 修复LOG4J2-883ggregory
Update将 org.eclipse.osgi 从 3.6.0 更新到 3.7.1. 修复LOG4J2-884ggregory
Update将 Apache Flume 从 1.5.0.1 更新到 1.5.2. 修复LOG4J2-900ggregory

版本 2.1 – 2014-10-19

TypeChangesBy
Fix该网站的一些错字修复和增强功能。修复LOG4J2-676。感谢 Stefan Bodewig。rgoers
Add添加 ShutdownCallbackRegistry 接口以进行可自定义的关闭回调处理。这对于希望与 Log4j 2 集成的应用程序服务器特别有用。修复了LOG4J2-868mattsicker
Fix文档:修复了代码示例中缺少右括号的问题。修复LOG4J2-866。感谢 Gerard Weatherby。rpopma
Fix修复了类加载器问题,该问题使 Log4j 在自定义 Ant 任务中使用时无法找到实现。修复LOG4J2-862。感谢 Michael Sutherland。mattsicker
Add在配置中支持对自定义日志级别的过滤。修复LOG4J2-589rpopma
Fix文档:修复左侧导航“扩展 Log4j 配置”子菜单上断开的链接。修复LOG4J2-861rpopma
Add文档:将 JUL 适配器,IO 流和 NoSQL Appenders 上的部分添加到 Maven 和 Ivy 页面。修复LOG4J2-856rpopma
Fix文档:阐明了为什么 log4j-core 是 Maven 和 Ivy 页面中的编译时依赖项。修复LOG4J2-797。感谢 Andreas Rytina。rpopma
Fix文档:修复 Appenders 手册页上断开的链接。修复LOG4J2-855rpopma
Fix重新加载使用 AsyncLogger/AsyncRoot 进行的配置时,请防止 NPE。修复LOG4J2-807rpopma
Add添加 Java 查找以提供格式正确的运行时版本信息。修复LOG4J2-848ggregory
Add将反射 Util 类移至 API 的专用 Util 类。修复LOG4J2-809mattsicker
Update在 Log4j API ProviderUtil 中将 2.1.0 添加到兼容版本,并在核心 META-INF/log4j-provider.properties 中将 Log4jAPIVersion 更新为 2.1.0. 修复LOG4J2-845mattsicker
Add文档:在站点左侧的导航栏中添加了“运行时依赖项”链接。修复LOG4J2-833rpopma
Add文档:XInclude 上的部分添加到用户手册“配置”页面。修复LOG4J2-816rpopma
Fix文档:修复了 Log4j2 网站/文档的小问题。修复LOG4J2-678。感谢 Matt Sicker。rpopma
Update将 JMH 从 0.7.2 更新到 1.1. 修复LOG4J2-844rpopma
Fix将 JpaHyperSqlAppenderTest JUnit 性能测试迁移到 log4j-perf。修复LOG4J2-843rpopma
Fix将 JpaH2AppenderTest JUnit 性能测试迁移到 log4j-perf。修复LOG4J2-842rpopma
Fix将 JdbcHyperSqlAppenderTest JUnit 性能测试迁移到 log4j-perf。修复LOG4J2-841rpopma
Fix将 JdbcH2AppenderTest JUnit 性能测试迁移到 log4j-perf。修复LOG4J2-840rpopma
Fix尊重外部中断 signal,以允许应用程序在加入 AsyncAppender 线程后关闭。修复LOG4J2-830rpopma
FixMarkerManager Log4jMarker.hasParents()返回与正确结果相反的结果。修复LOG4J2-813。感谢 Brandon Barry 的 David Erichsen。ggregory
Fix文档:修复了用户手册示例配置中的大小写不一致。修复LOG4J2-785rpopma
Fix解决了 RollingFile filePattern 中的问题:反斜杠是路径分隔符,而不是转义符。修复LOG4J2-829rpopma
Add添加 Log4j IOStreams 组件。修复LOG4J2-547mattsicker
Add添加了内存 Map 文件添加器。修复LOG4J2-431。感谢 Claude Mamo。rpopma
Fix如果记录的堆栈跟踪中的类从初始化程序抛出 java.lang.Error,则 ThrowableProxy 失败。修复LOG4J2-832。感谢 Seth Leger。ggregory
Update文档:针对 JULbridge 和 2.1 版本的常见问题解答“哪个罐子”图表已更新。修复LOG4J2-831rpopma
Add通过标准插件系统支持使用 TypeConverter 类。修复LOG4J2-827mattsicker
Fix通过使用更可预测的插件加载基础结构,避免 ConverterKey 插件冲突。插件分为三部分:Classpath,用户指定的包和 OSGiBinding 包。修复LOG4J2-745。感谢 Scott Harrington。mattsicker
Fix修复了插件扫描冗余问题,在某些环境中会导致速度大幅下降。修复LOG4J2-798。感谢 Scott Harrington。mattsicker
Fix减少 CachedClock 线程争用。修复LOG4J2-753rpopma
Fix修复了由于 Web 应用程序停止后 Tomcat 意外启动的时钟后台线程导致的 Tomcat 6 内存泄漏。修复LOG4J2-819。感谢 Gary Gregory。mattsicker
Add为插件系统添加简单的验证约束 Comments。修复LOG4J2-825mattsicker
Add实施 GELF 布局。修复LOG4J2-428。感谢 Mark Paluch,MikaelStåldal。ggregory
Fix现在,在发送批处理时,FlumePersistentManager 可以处理 Berkeley Db 中的 LockConflictExceptions。修复LOG4J2-391。感谢 Kamal Bahadur。rgoers
Fix删除无效的 Oracle Maven 存储库。修复LOG4J2-782mattsicker
Update将 Spring Framework 从 3.2.8.RELEASE 更新到 3.2.11.RELEASE。修复LOG4J2-780mattsicker
Update将两个 JMS 附加程序统一为一个附加程序。为 2.0 编写的配置仍可在 2.1 中使用。修复LOG4J2-815mattsicker
Add添加基于 log4j-api 的 java.util.logging 实现。有关更多详细信息,请参见 log4j-jul 文档。修复LOG4J2-608mattsicker
Fix修复了 log4j-to-slf4j 无法与 SLF4J Simple Logger 正常工作的问题。修复LOG4J2-796rpopma
FixSimpleLogger 为空数组引发 ArrayIndexOutOfBoundsException。修复LOG4J2-811。感谢 Yogesh Rao。ggregory
Fix使用 JMS API 修复 OSGi 导入包问题。修复LOG4J2-663。感谢 Florian Brunner。mattsicker
Add在 log4j-slf4j-impl 模块中添加对自定义 SLF4J 标记的支持。修复LOG4J2-793mattsicker
Fix默认情况下,PatternLayout 应该使用平台字符编码,而不是 UTF-8.修复LOG4J2-783。感谢 Minglei Lee。rpopma
Add添加对应用程序主要参数的查找。修复LOG4J2-771ggregory
Add添加对 JVM 参数的查找。修复LOG4J2-787ggregory
Update将 Jackson 从 2.4.1 更新到 2.4.2(用于 XML 和 JSON 处理)。修复LOG4J2-790ggregory
UpdateJSONLayout 的文档不完整。修复LOG4J2-766。感谢 Bruno P. Kinoshita。ggregory
Update所有生命周期实施都应可序列化。这项工作仍在进行中。修复LOG4J2-800ggregory
Updateorg.apache.logging.log4j.core.Logger 应该是可序列化的。这项工作仍在进行中。修复LOG4J2-801ggregory
Update将 javax.mail 从 1.5.0 更新到 1.5.2. 修复LOG4J2-810ggregory
Update将 org.eclipse.persistence.jpa 从 2.5.1 更新到 2.5.2. 修复LOG4J2-822ggregory
UpdateFlumeAppender:maxDelay 不是秒,而是毫秒。将时间刻度添加到某些设置,例如 maxDelayMillis 而不是 maxDelay。出于兼容性考虑,旧名称被别名。修复LOG4J2-867ggregory

2.0.2 版– 2014-08-16

TypeChangesBy
Update将 Apache Flume 从 1.5.0 更新到 1.5.0.1. 修复LOG4J2-775ggregory
Fix站点:log4j 核心组件页面仍使用旧徽标。修复LOG4J2-773rpopma
Fix文档改进:从 log4j-core 组件页面链接到依赖树,从 FAQ 页面链接到 log4j-core 组件页面。修复LOG4J2-760rpopma
Fix解决的竞争条件导致日志文件旋转失败,并显示错误:“无法创建目录...”。修复LOG4J2-679rpopma
Fix当 PatternLayout 配置打开' {' but no closing '}'时,防止应用程序挂起。修复LOG4J2-726rpopma
Fix如果您具有空包属性,则启动将花费很长时间。修复LOG4J2-769。感谢 Scott Harrington。rpopma
Fix改进了异步 Logger 和附加器,以确保即使应用程序修改了参数,格式化消息也不会更改。 (ParameterizedMessage 已经很安全.)改进了文档。修复LOG4J2-763。感谢 Stephen Connolly。rpopma
Fix如果未找到配置文件,则向控制台发出警告消息。修复LOG4J2-729rpopma
Fix改进在 Classpath 中缺少 log4j-core 时的警告消息。修复LOG4J2-765rpopma
Fix文档中阐明,使用 log4j-jcl 时需要 Commons Logging jar。修复LOG4J2-722rpopma
Fix文档中阐明,使用 log4j-slf4j-impl 时需要 SLF4J API jar。修复LOG4J2-723rpopma
Update允许 Log4jContextFactory 子类指定自定义 ContextSelector。修复LOG4J2-730rpopma
Fix修复了各种次要站点/文档问题,主要涉及版本控制。修复LOG4J2-759rpopma
Fix防止 JUnit 测试在构建期间创建不必要的 Log4j2Plugins.dat。修复LOG4J2-756。感谢 Scott Harrington。rpopma

2.0.1 版– 2014-07-29

TypeChangesBy
Fix记录 TimestampMessage 时,避免不必要的时钟调用。修复LOG4J2-744。感谢 Scott Harrington。rpopma
Fix改进的错误消息(如果未找到配置文件)。修复LOG4J2-704rpopma
FixWebapp 配置页面的类名不正确。修复LOG4J2-750。感谢 Mike Calmus。ggregory
Fix修复 ISO8601 模式后,保留默认的日期模式。修复LOG4J2-749。感谢 Scott Harrington。rpopma
FixDatePatternConverter ISO8601_PATTERN 现在符合 ISO8601.修复LOG4J2-670rpopma
Fix恢复用于发现自定义插件的程序包配置属性。修复LOG4J2-741rpopma
FixXInclude 无法使用相对路径。修复LOG4J2-742。感谢 Pascal Chollet。ggregory
Fix修复了 webapp 手册中有关 samplesweb.xml 文件的错字。修复LOG4J2-740。感谢 Kosta Krauth。mattsicker
Fix如果异步操作线程无法启动,则 RollingFileManager 死锁。修复LOG4J2-738。感谢 Timothy Stack。ggregory
Fix修复了 log4j-bom,使其不会在任何第三方依赖项上指定默认范围。修复LOG4J2-736mattsicker
Fix修复了 log4j-bom,使其不会与 spring-bom 等冲突。修复LOG4J2-735mattsicker
Fix更新了有关 LoggerContextFactory 和 Log4j 2 提供程序扩展的文档。修复LOG4J2-731mattsicker
Fix修复了在 OSGi 环境中加载 Log4j 提供程序时的 ClassLoader 问题。修复LOG4J2-373mattsicker
Add向 log4j-web 添加了 WebLoggerContextUtils 类,以获取对异步 Servlet 有用的帮助程序方法。修复LOG4J2-725mattsicker
Add添加了有关“自定义级别”和“自定义 Logger”的文档。修复LOG4J2-710rpopma
Fix正确处理 Log4j2 初始化期间在 Android 上引发的 NetworkOnMainThreadException。修复LOG4J2-719rpopma
Fix当检测到我们在 Android 上运行时,自动禁用 log4j JMX。修复LOG4J2-716rpopma
Fix修复 AbstractDatabaseManager 在 writeInternal 错误时关闭连接。修复LOG4J2-657。感谢 Stefan Wehner。rpopma
FixAndroid:java.lang.VerifyError:org/apache/logging/log4j/core/util/Closer。修复LOG4J2-713。感谢 Nelson Melina。ggregory
FixAndroid:找不到方法'org.apache.logging.log4j.core.lookup.JndiLookup.lookup'引用的类'javax.naming.InitialContext'。修复LOG4J2-703。感谢 Nelson Melina。ggregory
从 3.2.1 更新到 LMAX Disruptor 3.3.0. 修复LOG4J2-732ggregory
从 2.4.1.X 版本更新到最新的 Jackson 罐子。修复LOG4J2-733ggregory

2.0 版– 2014-07-12

TypeChangesBy
Fix解决了异步 Logger 不记录线程上下文堆栈数据的问题。 API 更改:将方法 getImmutableStackOrNull()添加到 ThreadContext.ContextStack 接口。修复LOG4J2-705rpopma
Fix更新文档以阐明如何同时使用格式 Logger 和标准 Logger。修复LOG4J2-631rpopma
Add增加了对生成替换现有日志级别的自定义日志包装程序的支持,并扩展了将自定义日志级别添加到现有日志包装程序的扩展的记录程序包装程序。修复LOG4J2-519rpopma
Fix没有级别的 LoggerConfigs 现在从其父级继承级别。修复LOG4J2-441rgoers
AddRegexFilter 与多行日志消息不匹配。修复LOG4J2-696ggregory
FixPatternLayout 手册页缺少页眉/页脚上的文档。修复LOG4J2-699rpopma
Fix修复了 SocketAppender 和异步 Logger 的序列化错误。 (已在 RC2 中修复,但未包含在发行说明中.)。修复LOG4J2-625rpopma
FixJMX GUI:修复了按“重新配置以下 XML”后偶尔出现的 ArrayIndexOutOfBoundsException 的问题。 (已在 RC2 中修复,但未包含在发行说明中.)。修复LOG4J2-538rpopma
FixAsyncLoggerContextSelector 应确保由 Web 应用程序类加载器创建的不同 AsyncLoggerContext 对象具有唯一的名称。修复LOG4J2-666rpopma
Fix修复 JDK 1.7 上的 Comments 处理器警告。修复LOG4J2-683。感谢 Jurriaan Mous。mattsicker
Fix修复在测试类中弹出的奇怪编译错误。修复LOG4J2-694mattsicker
Fix更新文档以仅指定 Maven 3 受支持。修复LOG4J2-692rgoers
FixLog4j Web 测试依赖项应在 pom 中的“ test”范围内。修复LOG4J2-690。感谢 Philip Helger。rgoers
FixPatternLayout 中的特殊字符(制表符等)不起作用。修复LOG4J2-682。感谢 Scott Harrington。ggregory
Update使 org.apache.logging.log4j.core.layout.AbstractLayout 不可变。修复LOG4J2-685ggregory
FixCore 对\ b 的 OptionConverter 支持已损坏(影响 PatternLayout)。修复LOG4J2-686ggregory
Fix重命名 org.apache.logging.log4j.core.util.Closer.closeSilent()为 closeSilently()。修复LOG4J2-687ggregory
Fix使 org.apache.logging.log4j.core.layout.PatternLayout 不可变。修复LOG4J2-688ggregory
Update将 Jackson 更新至 2.4.1. 修复LOG4J2-689ggregory
Fix检测到配置问题时,不会记录某些异常。修复LOG4J2-707ggregory
Update将 Apache Commons Logging 从 1.1.3 更新为 1.2. 修复LOG4J2-709ggregory

版本 2.0-rc2 – 2014-06-21

TypeChangesBy
Add现在,RollingFile 和 RollingRandomAccessFile 可以在过渡之前写入布局页脚。修复LOG4J2-675rpopma
Fix现在,RollingRandomAccessFile 在翻转后将写入布局 Headers。修复LOG4J2-581。感谢 Alexander Khokhlov。rpopma
Fix现在,RollingFileManager 可以在过渡后正确地使用 bufferedIO 配置。修复LOG4J2-622。感谢 Farooq Khan。rpopma
Add使 RollingFileAppender 缓冲区大小可配置。修复LOG4J2-674rpopma
Fix改进了有关 log4j 状态 Logger 的文档。修复LOG4J2-141。感谢 Joern Huxhorn。rpopma
Fix解决了 JMX Client GUI 中“使用下面的 XML 重新配置”功能的问题。 ConfigurationSource 现在是顶级类,可以使用 Configuration.getConfigurationSource()获得。 LoggerContext.getConfiguration()。getConfigurationSource()提供了一种可靠的公共方法,用于获取 Logger 上下文的配置位置和内容。修复LOG4J2-539。感谢 Colin Froggatt。rpopma
Fix无效的 XML 配置文件不会阻止再次检查配置文件。修复LOG4J2-619。感谢 Scott Harrington。rgoers
FixJMX:现在可以正确地通过 jConsole 更新 Logger 的级别了。修复LOG4J2-637。感谢 Mansoor Sajjad,Jon Wilmoth。rpopma
Fix将 AsyncLogger 与 AsyncAppender 结合使用时,可以正确处理日志事件。修复LOG4J2-668rpopma
Fix将 AsyncLogger 与 AsyncLoggerConfig 结合使用时,请防止 NPE。修复LOG4J2-669rpopma
Add创建一个附加程序,将日志事件路由到 ServletContext 日志。修复LOG4J2-42rgoers
Update支持默认值,用于在查找中缺少键并回退到属性 Map 中查找。修复LOG4J2-419。感谢 Woonsan Ko。rgoers
FixFlumeAvroManager 现在始终使用 default_failover 的 Client 端类型。修复LOG4J2-563。感谢 Michael Friedmann。rgoers
Update允许将配置文件作为 Servlet 上下文资源定位。修复LOG4J2-554rgoers
Fix触发大小翻转时重置翻转时间。修复LOG4J2-535rgoers
Fix为了 OSGi 兼容性,将插件缓存文件移至 META-INF。修复LOG4J2-664mattsicker
Fix修复可能由空 ThreadContextClassLoader 引起的 NPE。修复LOG4J2-640mattsicker
Add添加 Vagrantfile 以在 GNU Linux 中进行测试。修复LOG4J2-655mattsicker
FixLog4j 2 引发 ArrayIndexOutOfBoundsException。修复LOG4J2-651ggregory
Add添加 log4j-perf 模块,为所有 log4j 性能测试提供依据。添加对 JMH 微基准性能测试的支持。修复LOG4J2-654rpopma
Add添加对默认插件值和属性的支持。修复LOG4J2-652mattsicker
Add为插件出厂值/属性添加对除 String 之外的类型的支持。修复LOG4J2-598mattsicker
Update重构 Log4jLogEvent 以延迟创建 ThrowableProxy。修复LOG4J2-250rpopma
Update升级到 Flume 1.5.0. 修复LOG4J2-647ggregory
Add实施 SecureSocketAppender 和安全服务器(SSL/TLS)。修复LOG4J2-644ggregory
Update将 TLS Syslog 附加程序合并到 Syslog 附加程序中。修复LOG4J2-646ggregory
Fix在单独的线程中执行重新配置以防止死锁。修复LOG4J2-620rgoers
Update覆盖测试中的 commons-logging 依赖版本。修复LOG4J2-641mattsicker
Fix如果在关闭 log4j 后使用了 Logger,请防止在 AsyncLogger 和 AsyncLoggerConfig 中使用 NPE。修复LOG4J2-639。感谢 Mck SembWever。rpopma
Fix主附加程序恢复后,FailoverAppender 并未重置其状态。修复LOG4J2-469rgoers
Fix在 JSONLayout 中将 MDC 属性生成为 JSONMap。修复LOG4J2-623rgoers
Update使 RollingRandomAccessFileAppender 缓冲区大小可配置。修复LOG4J2-566。感谢 Luigi Alice。rpopma
Fix解决了以下问题:如果停止应用程序时队列仍然包含事件,则 AsyncAppender 会丢弃事件。修复LOG4J2-520。感谢 JavaTech,Andre Bogus。rpopma
Fix解决了以前的 LOG4J2-392 解决方案的问题,该问题导致在应用程序停止时将 AsyncLoggerConfig 与慢速附加程序一起使用时导致事件丢弃。修复LOG4J2-392。感谢 Andre Bogus。rpopma
FixOSGi 版本的 log4j-web 至少导入 Servlet 2.5,而不是 3.0. 修复LOG4J2-613mattsicker
Fix现在,在构建过程中,单元测试不再那么冗长。修复LOG4J2-602rgoers
Fix修复 servlet 容器中的关闭线程内存泄漏。修复LOG4J2-570mattsicker
Update使用 Clock 生成所有日志事件时间戳,而不仅仅是为异步 Logger 生成。修复LOG4J2-628rpopma
Add记录 Log4J 2 中使用的系统属性。修复了LOG4J2-629rpopma
Fix在 ThrowableProxy 中使 Throwable 成为瞬态。修复LOG4J2-542rgoers
Update将 SLF4J 更新为 1.7.7. 修复LOG4J2-617mattsicker
Update将 Jackson 更新至 2.3.3. 修复LOG4J2-616mattsicker
Fix在关闭期间,由于 NullConfiguration 类不再对 ClassLoader 可用,可能会引发 NullPointerException。修复LOG4J2-440mattsicker
FixOSGi 中 log4j-slf4j-impl 的循环依赖性。修复LOG4J2-346mattsicker
Fixlog4j-1.2-api 模块未将任何软件包导出到 OSGi。修复LOG4J2-345mattsicker
Fix来自 NoSQL 插件的密码数据不再以明文形式显示在调试日志 Logging。修复LOG4J2-605mattsicker
Fix属性替换期间可能会发生 StringIndexOutOfBounds 异常。修复LOG4J2-448。多亏了 X86core。rgoers
FixStatusLogger 没有跳过 FQCN 类的多个实例,从而导致打印了详细列表中的类消息。修复LOG4J2-597rgoers
Update将对多个 parent 的支持添加到标记中。修复LOG4J2-585。感谢 Bruce Brouwer。rgoers
Add将 JavaComments 处理器作为新的插件预缓存机制引入。在 log4j-core 中可用。在此之前创建的所有自定义插件都应针对当前的 log4j-core 重新构建。修复LOG4J2-595mattsicker
Fix将 SLF4JLogger 类重命名为 Log4jLogger。修复LOG4J2-564mattsicker
Fix返工级别比较 API。修复LOG4J2-579ggregory
Add添加 org.apache.logging.log4j.Logger.getLevel()。修复LOG4J2-576ggregory
Update将阻止默认为异步 Logger 的 WaitStrategy。修复LOG4J2-574rpopma
Update引入 ExtendedLogger 接口以方便实现和扩展 Logger。修复LOG4J2-555。感谢 Bruce Brouwer。rpopma
FixSyslogAppenderTest 和 RFC5424LayoutTest 在 Java 8 中失败。修复了LOG4J2-560rgoers
Update在 Configuration 的 package 属性中,逗号前后应留有空格。修复LOG4J2-561。多亏了 vibin。ggregory
Update让 Logger API 公开 PrintWriter 而不是自定义 LoggerStream。修复LOG4J2-547。感谢 Bruce Brouwer。rgoers
Add添加 EncodingPatternConverter 以转义换行符和 HTML 特殊字符。修复LOG4J2-439。感谢 Bruce Brouwer。rgoers
Update允许将页眉和页脚指定为 PatternLayout 中的查找模式。修复LOG4J2-496rgoers
Fix将等于和哈希码添加到 Log4jLogEvent。修复LOG4J2-499rgoers
UpdateSLf4JLogger 现在可序列化。修复LOG4J2-410。感谢 Ivlin Zeng。rgoers
Add通过 YAML 添加对配置的支持。修复LOG4J2-427。感谢 Alexander Reelsen。rgoers
Fix将 DateLookup 和 ThreadContextLookup 添加到默认查找。修复LOG4J2-378rgoers
Update添加支持以添加 LoggerConfig。记录两种修改配置的方法。修复LOG4J2-468rgoers
Update将 org.apache.logging.log4j.core.net.SocketServer 重命名为 TCPSocketServer 并使用 UDP 进行重构。修复LOG4J2-582ggregory
Update将 Jackson 从 2.2.2 更新到 2.3.2. 修复LOG4J2-592ggregory

版本 2.0-rc1 – 2014-02-16

TypeChangesBy
删除了 JDBC Appender 的 DataSourceConnectionSource 和\ 插件。使用不安全。请使用连接池支持的数据源或工厂连接源。nickwilliams
Update将 org.apache.logging.log4j.core.appender.db.nosql.mongo 包重命名为 org.apache.logging.log4j.core.appender.db.nosql.mongodb。nickwilliams
Update将 org.apache.logging.log4j.core.appender.db.nosql.couch 包重命名为 org.apache.logging.log4j.core.appender.db.nosql.couchdb。grobmeier
Fix(JMX-ObjectNames 已更改!)卸载一个 Web 应用程序将卸载所有 Web 应用程序的 JMX MBean。修复LOG4J2-500rpopma
Update空间级别数字以 100 代替 1.固定为LOG4J2-507ggregory
Fix修复了 RollingFile 附加程序使用基于复合时间和大小的策略覆盖滚动日志文件的错误。修复LOG4J2-531。感谢 Geoff Ballinger。rpopma
Fix更改了 MongoDBConnection,以添加 MongoDB 编码钩子而不是解码钩子。修复LOG4J2-475。感谢 Matt Sicker。nickwilliams
Fix通过在新的内部写入或刷新上连接(从池中借用),修复了 JPAAppender 对事务的过度使用。修复LOG4J2-489nickwilliams
Fix修复了 JDBC 和 JPA 追加程序无法通过在内部新写入或刷新时连接(从池中借用)来正确释放数据库连接的问题。修复LOG4J2-457nickwilliams
Fix通过在内部新写入或刷新时连接(从池中借用)来解决 WebSphere 中 JDBC 和 JPA 追加器连接性的问题。修复LOG4J2-442nickwilliams
Fix确保 JDBCAppender 在一次写入或多次写入刷新后提交事务。修复LOG4J2-438nickwilliams
Fix修复了无法通过在内部新写入或刷新时连接(从池中借用)从数据库追加程序中丢失的数据库 Connecting 恢复的问题。修复LOG4J2-407nickwilliams
Add(JMX)当 LoggerContext MBean 在 MBean 服务器中注册/未注册时,JMXClient 端 GUI 应该动态更新。修复LOG4J2-530rpopma
Fix在停止其他附加程序之前,先停止 AsyncLoggerConfig Disruptor 线程,然后先停止 AsyncAppender 线程。修复LOG4J2-511。感谢 James Pretorius。rpopma
Fix在停止其他附加程序之前,先停止 AsyncLoggerConfig Disruptor 线程,然后先停止 AsyncAppender 线程。修复LOG4J2-392。感谢 ilynaf 和 Andre Bogus。rpopma
Fix(OSGi)logging.log4j-1.2-api 不会导出 log4j API 1.2. 依赖的 Binding 包无法解析。修复LOG4J2-345。感谢 Roland Weiglhofer,Matt Sicker。rpopma
FixLocalizedMessage 序列化已损坏。修复LOG4J2-523ggregory
Fix解决了基于时间的文件翻转(每月,每周,每小时和每分钟)的问题。修复LOG4J2-385。感谢 Porfirio Partida 的 Ace Funk。rpopma
Fix添加了 ServletContext 属性,该属性设置为“ true”时,将禁用 Servlet 3.0 Web 应用程序中 Log4j 的自动初始化。修复LOG4J2-452nickwilliams
Fix公开的 Log4j Web 支持界面和方法以及 LoggerContext 通过 ServletContext 属性,以便不受过滤器影响的线程(例如异步线程)可以利用 LoggerContext。还更新了 Log4j 过滤器,使其支持异步。修复LOG4J2-512。感谢 Chandra Sekhar Kakarla 和 Matt Sicker。nickwilliams
Fix创建了一个 Util 以在创建 URI 之前正确地转义反斜杠,并将 URI 创建更改为使用该 Util 而不是直接实例化 URI。修复LOG4J2-409。感谢 Frank Steinmann,Thomas Neidhart。nickwilliams
Fix更改了 Servlet 3.0 自动初始化程序,以按类添加过滤器来解决 WebLogic 错误。修复LOG4J2-344。感谢 Keir Lawson,Tomasz Wladzinski。nickwilliams
Fix更改了 Servlet 3.0 自动初始化程序,使其在 Servlet 2.5 或更早版本的应用程序中不执行任何操作。这确保了跨容器的行为一致性。这包括其他修复程序,如果已经存在重复的过滤器,则中止初始化并检查实际的 Servlet EFFECTIVE 版本。修复LOG4J2-359。感谢 Abhinav Shah。nickwilliams
Fix切换 log4j-1.2-api Category.getEffectiveLevel 中没有 FATAL 和 OFF 的情况。修复LOG4J2-517rpopma
Update添加对自定义日志记录级别的支持。修复LOG4J2-41。感谢尼克·威廉姆斯。rgoers
Fix(JMX)在 LoggerContext 停止时取消注册所有 log4j JMX MBean,以允许在取消部署时对 Web 应用程序类进行 GC 编辑。修复LOG4J2-406。感谢 Kerrigan Joseph。rpopma
Fix启动时配置已被处理两次。修复LOG4J2-405rgoers
Add现在,除非系统属性 isThreadContextMapInheritable 的值为“ true”,否则 ThreadContext 现在默认使用普通的 ThreadLocal。修复LOG4J2-479。多亏了 MK。rpopma
Fix在处理其余配置之前,请配置属性并设置 Interpolator。修复LOG4J2-398rgoers
Add将 Stream 接口添加到 Loggers。修复LOG4J2-481。感谢 Matt Sicker。rgoers
Update将 EasyMock 更新到版本 3.2. 修复LOG4J2-490。感谢 Matt Sicker。rgoers
Fix直到第一个配置元素之后才设置 hostName 属性。修复LOG4J2-470rgoers
Fix支持将数组作为 JSON 配置的子元素。修复LOG4J2-464rgoers
Fix(JMX)修复了如果上下文名称包含'='或换行符的 MalformedObjectNameException。修复LOG4J2-492。感谢 Herlani Junior 的 Shaddy Baddah。rpopma
Fix(OSGi)在关机期间修复 NPE。修复LOG4J2-377。感谢 Roland Weiglhofer,Matt Sicker。rpopma
Fix在“自动配置”部分中修复了 MyApp 示例应用程序的文档。修复LOG4J2-463。感谢 Michael Diamond,Matt Sicker。rpopma
Fix修复了 manual/eventlogging.html 中文档代码示例中的错误。修复LOG4J2-408。感谢胡东庆,Matt Sicker。rpopma
Fix修复了文档中的错字:系统属性应为 log4j2.loggerContextFactory。修复LOG4J2-451。感谢 Vinay Pothnis,Matt Sicker。rpopma
Fix(JMX)修复了在 JMX GUI 或 JConsole 中未显示 log4j2 LoggerContext 的问题。修复LOG4J2-443。感谢 Tudor Har 的 Colin Froggatt。rpopma
Fix解决了执行日志记录的 toString 方法可能会死锁 AsyncAppender 的问题。修复LOG4J2-485rpopma
FixResolverUtil 在文件 URL 中找不到包含“”字符的软件包。修复LOG4J2-445。感谢 Anthony Baldocchi。rpopma
Fix将 RFC5424Layout 中的格式化消息用于非 StructuredDataMessages。修复LOG4J2-430。感谢 David Gstir。rgoers
Fix构造 LoggerContext 时设置外部上下文。修复LOG4J2-459rgoers
Fix如果路径包含加号'',则无法加载 log4j2 配置文件。修复LOG4J2-466。感谢 Jan Tepke。rpopma
Fix修复 LogEvent 永不返回 null 级别,修复 LevelPatternConverter.format 可能引发 NPE。修复LOG4J2-462。多亏了大辅爸爸。rpopma
Fix修复 LogEvent 永不返回 null 级别,修复 ThresholdFilter 引发 NPE。修复LOG4J2-465。多亏了大辅爸爸。rpopma
Fix解决了执行记录的 toString 方法可能会死锁 AsyncLogger 的问题。修复LOG4J2-471。感谢 Anthony Baldocchi。rpopma
Add文档修复:引用添加程序的 Route 属性是“ ref”而不是“ AppenderRef”。修复LOG4J2-482。多亏洪帝仁。rpopma
Add添加了在 AsyncLogger 中切换线程名称缓存的选项。修复LOG4J2-467。感谢 Anthony Baldocchi。rpopma
Fixmessage 和 ndc 字段不是在 JSONLayout 中转义的 JavaScript。修复LOG4J2-478。感谢迈克尔·弗里德曼。ggregory
FixRingBufferLogEvent 应该为 TimestampMessage 消息返回消息时间戳。修复LOG4J2-455。感谢张涛。rpopma
FixNPE 在 ClassLoaderContextSelector 中。修复LOG4J2-477。感谢 Tal Liron。rpopma
FixTimeBasedTriggeringPolicy 应该使用事件时间毫秒。修复LOG4J2-454。感谢张涛。rpopma
FixBaseConfiguration 类未正确实现 Configuration 接口。修复LOG4J2-472。感谢 Tal Liron。rpopma
FixXMLLayout 不包含标记名称。修复LOG4J2-447。感谢 Jeff Hudren,Mark Paluch 和 Scott Deboy。ggregory
Update更新 Flume Appender 以使用 Flume 1.4.0. 修复LOG4J2-453rgoers
Add(JMX)添加了用于检测 AsyncAppenders 和 AsyncLogger RingBuffers 的 MBean,公开了队列大小,剩余容量和其他属性。修复LOG4J2-423rpopma
Fix通过在 AsyncLogger 停止时释放对 ThreadLocal 的引用来解决内存泄漏。修复LOG4J2-323rpopma
Fix通过通过 EventTranslatorTwoArg 填充 AsyncLoggerConfigHelper 环形缓冲区来解决内存泄漏,无需使用 ThreadLocal。修复LOG4J2-425rpopma
Add创建用于资源束替换的查找。修复LOG4J2-420ggregory
Fix在体系结构文档页面上修复事件级别/ LoggerConfig 级别表。修复LOG4J2-417ggregory
Add将日志事件时间格式设置为 UNIX 时间(秒或毫秒)。修复LOG4J2-415ggregory
Fix使用 RFC5424Layout 时,结构化数据 ID 中缺少“ @EnterpriseNumber”。修复了LOG4J2-404。感谢 Kamal Bahadur。rgoers
Fix修复了导致 Log4J 无法在 Google App Engine 中工作的问题。修复LOG4J2-379rpopma
Add配置 FileAppender 缓冲区大小。修复LOG4J2-401ggregory
Add配置 RandomAccessFileAppender 缓冲区大小。修复LOG4J2-402ggregory
Update将包 org.apache.logging.log4j.core.appender.rolling.helper 重命名为 org.apache.logging.log4j.core.appender.rolling.action。修复LOG4J2-528ggregory
Update无法创建 BerkeleyDB 数据库时,Flume Appender 中的资源泄漏。修复LOG4J2-532ggregory
Update如果没有可用的控制台,则 PatternLayout 选项不会输出 ANSI 转义码。修复LOG4J2-413ggregory

版本 2.0-beta9 – 2013-09-14

TypeChangesBy
Update将 FastFileAppender 和 FastRollingFileAppender 重命名为 RandomAccessFileAppender 和 RollingRandomAccessFileAppender。使用 Fast(Rolling)File 元素的配置不再起作用,应进行修改以使用(Rolling)RandomAccessFile 元素。修复LOG4J2-317ggregory
Update将所有 Appender 的“ suppressExceptions”配置属性更改为“ ignoreExceptions”,以避免与 Java 7 受抑制的异常混淆。还将 Appender#isExceptionSuppressed()方法重命名为 Appender#ignoreExceptions()以避免相同的混淆。默认情况下,所有 Appender 都会内部记录日志,然后忽略记录时遇到的异常。在 Appender 上将“ ignoreExceptions”设置为“ false”会导致它允许异常传播到调用方。对于要包装在故障转移 Appender 中的 Appender,必须将“ ignoreExceptions”设置为“ false”。nickwilliams
Update将(相对较新的)PatternLayout 配置属性“ suppressExceptions”更改为“ alwaysWriteExceptions”以更正确地指示其功能。这样,此属性的含义已颠倒(先前的“ true”应变为“ false”,反之亦然)。由于这是迄今为止未记录的属性,因此此更改不太可能影响任何用户。nickwilliams
Fix在 pdf 中修复目录生成。修复LOG4J2-226rgoers
Fix在将配置文件位置指定为系统属性时,允许 Classpath 方案。修复LOG4J2-395。感谢 Abhinav Shah。rgoers
Fix在配置期间初始化一次 PluginManager。将广告设置移至 BaseConfiguration。修复LOG4J2-393rgoers
FixFlumePersistentManager 现在可以在 Berkeley Db 中处理 LockConflictException。修复LOG4J2-391。感谢 Kamal Bahadur。rgoers
Add允许使用默认文件翻转策略来定义压缩级别。修复LOG4J2-399ggregory
Add添加 TLSAppender。还向多个文件添加了缺少的许可证 Headers。修复LOG4J2-338。感谢 Tibor Benke。rgoers
Fix在 filePattern 中替换${date}时,请使用过渡日期。修复LOG4J2-380rgoers
Add在网站上添加了常见问题页面。修复LOG4J2-253rpopma
Add将一个图添加到站点(“常见问题”页面),该图说明何时使用哪个 jar。修复LOG4J2-362rpopma
Fix集中使用 Reflection#getCallerClass 进行反射式使用,并正确处理了其在各种 Java 版本中的不稳定性。修复LOG4J2-322nickwilliams
Fix如果 ClassLoaderContextSelector 创建了一个没有配置位置的 LoggerContext,然后将其提供,则重置配置。修复LOG4J2-293rgoers
Fix更改了 ConfigurationFactory,以识别并正确使用 classloader:URI 方案以及 classpath:URI 方案。修复LOG4J2-293。感谢 Abhinav Shah。nickwilliams
Fix更改了 Servlet 3.0 自动初始化程序,使其在 Servlet 2.5 或更早版本的应用程序中不执行任何操作。这确保了跨容器的行为一致性。修复LOG4J2-359。感谢 Abhinav Shah。nickwilliams
Add向 PatternLayout 添加更多选项以显示有关 Throwable 的更多详细信息。修复LOG4J2-374。感谢 Tibor Benke。ggregory
Add[样式布局]按长度自定义级别名称。修复LOG4J2-383ggregory
Add[图案布局]将级别名称自定义为小写。修复LOG4J2-384ggregory
Update在 RFC 5424 系统日志消息中添加对多个 SD-ELEMENT 的支持。修复LOG4J2-355。感谢 Tibor Benke。ggregory
Update解决 EclipseLink 问题#412454 后,清理 JPA 附加程序的测试并清除文档。nickwilliams
Fix解决了 SMTPAppender 在没有事先信息事件的情况下不会发送错误或致命级别的邮件的问题。修复LOG4J2-310。感谢 Olivier Lemasle。rpopma
Fix将 PatternLayout 构造函数添加到 Log4j 1.2bridge 以获取速度。修复LOG4J2-368rgoers
Fix将工件 ID 与 Maven 模块名称匹配。修复LOG4J2-333。感谢 HervéBoutemy。ggregory
Add添加 WebLookup 以从 ServletContext 检索信息。修复LOG4J2-364。感谢 David Nault。rgoers
FixJMS 附加程序为一条附加发送两条消息。修复LOG4J2-367。感谢 David Parry。ggregory
Fix在%style 和%highlight 中使用%throwable 时,双堆栈跟踪日志记录。修复LOG4J2-319ggregory
Add允许插件具有别名。修复LOG4J2-360rgoers
Fix使用 MongoDB 提供程序的 NoSQLAppender 忽略用户名和密码属性。修复LOG4J2-358nickwilliams
Add创建一个 JSON 布局。修复LOG4J2-356ggregory
Fix从 Appender 接口和实现类中删除了不必要的泛型。修复LOG4J2-343。感谢 Henning Schmiedehausen。rpopma
Fix[OSGi]Lists 文件中的片段主机错误。修复LOG4J2-351。感谢 Roland Weiglhofer。rpopma
Fix多次调用 LoggerContext.reconfigure()后,AsyncLogger 错误。修复LOG4J2-336。感谢 Andre Bogus。rpopma
Fix为 AsyncAppender 线程指定一个更具描述性的名称,以便于调试/分析。修复LOG4J2-347。感谢 David Phillips。rpopma
Fix修改了文档,以引用 SLF4J 绑定而不是 SLF4J Bridge。修复LOG4J2-332。感谢 HervéBoutemy。rgoers
Fix忽略 xml:base 属性。修复LOG4J2-342rgoers
Fix保险罐和发行版只有一个许可证和声明文件。修复LOG4J2-309rgoers
Add为 XML 配置启用 XInclude。修复LOG4J2-341ggregory
FixJPAAppender 停止记录,因为 META-INF/log4j-provider.properties 保持打开状态。修复LOG4J2-320ggregory
FixFlumePersistentManager 的编写器线程具有很高的 CPU 使用率。修复LOG4J2-335rgoers
Fix删除了对受影响的 MongoDB 记录的错误检查,该检查在插入时始终返回零。修复LOG4J2-331nickwilliams
Fix添加了 BSON 变压器,以便 MongoDB 可以保留 Log4j 事件。修复LOG4J2-330nickwilliams
Fix现在,StatusLogger 仅在适当的日志记录级别时才创建 StatusData 对象。修复LOG4J2-329rgoers
FixFlumePersistentManager 过于频繁地调用 Berkeley DB 的 count 方法。修复LOG4J2-328rgoers
Fix使 AsyncAppender 线程成为守护程序线程并改进其线程名称的其他修补程序。修复LOG4J2-280rpopma
Fixslf4j-ext jar 现在是 SLF4Jbridge 的可选依赖项。修复LOG4J2-165rgoers
Update允许在配置中禁用关闭钩子。修复LOG4J2-318rgoers
FixRoutingAppender 的默认 Route 现在可以作为附加程序引用。修复LOG4J2-166rgoers
Add添加 JNDILookup 插件。修复LOG4J2-313。感谢 Woonsan Ko。rgoers
Fix将 getThrowable 方法添加到 ThrowableProxy。修复LOG4J2-299rgoers
FixThrowableProxy 不再扩展 Throwable。修复LOG4J2-216rgoers
FixXxxFileManager 和 OutputStreamManager 类中的 flush()和 close()方法同步。修复LOG4J2-311rpopma
UpdateXML 布局改进(紧凑与漂亮,名称空间,名称空间前缀,根元素)。修复LOG4J2-312ggregory
Update将 Java Mail 依赖性从 1.4.7 更新到 1.5.0. 修复LOG4J2-388ggregory
Update更新 JDBC 测试以使用 1.3.172 中的 H2 数据库 1.3.173. 修复LOG4J2-325ggregory
Update将 commons-logging 从 1.1.1 更新为 1.1.3. 修复LOG4J2-366ggregory
Update将 HSQLDB 依赖性从 2.2.9 更新到 2.3.0. 修复LOG4J2-390ggregory
Update澄清了异步 Logger 性能测试中使用了哪些库版本。修复LOG4J2-308rpopma
Update将 Async Loggers 的 LMAX Disruptor 库从 3.0.1 更新到了 3.2.0. 修复LOG4J2-307rpopma
Update将 JSON Jackson 库从 2.2.1 更新到 2.2.2. 修复LOG4J2-306ggregory
Update将 Jackson 依赖关系从 1.9.11 更新到 1.9.13. 修复LOG4J2-387ggregory
Add从 1.x 轻松移植 Logger.getRootLogger():添加 LogManager.getRootLogger()。修复LOG4J2-305ggregory
Fix修复了异步 Logger 内存泄漏。修复LOG4J2-304rpopma
Fix修复了 JDBC,JPA 和 NoSQL 附加程序,以便故障转移附加程序可以在发生错误时正确进行故障转移。修复LOG4J2-291nickwilliams
Update通过为所有组件的 Javadoc 链接添加快速跳转页面和菜单来改进站点。nickwilliams
FixLogger.info(Message)Javadoc 不正确。修复LOG4J2-397。感谢 Yonatan Graber。ggregory

版本 2.0-beta8 – 2013-07-10

TypeChangesBy
Update改进了 Servlet 容器中的日志记录初始化,尤其是 Servlet 3.0 及更高版本,其中 Log4j 现在无需部署 Descriptors 配置即可自动初始化和取消初始化。修复LOG4J2-270nickwilliams
Fix向 ThreadContextStack/Map 实现类添加了 toString 方法。修复LOG4J2-302rpopma
Update将 printf 方法添加到 Logger API。修复LOG4J2-301rgoers
Fix当没有可用代理导致 OutOfMemoryError 时,WriterThread 将结束。修复LOG4J2-300rgoers
Update允许将默认状态级别指定为系统属性。修复LOG4J2-282rgoers
Fix过滤来自 FluoAppender 忽略的来自 Avro 或 Flume 的调用。修复LOG4J2-278rgoers
FixFlumePersistentManager 现在从线程调用 Berkeley DB,以避免在应用程序中遇到中断。修复LOG4J2-279rgoers
FixFlumePersistentManager.createManager 中的工作浪费。修复LOG4J2-296ggregory
FixTestConfigurator.testEnvironment 中的工作浪费。修复LOG4J2-297ggregory
FixStyleConverterTest.setupClass 中浪费的工作。修复LOG4J2-298ggregory
FixAsyncLogger 线程现在是守护程序线程,不会再阻止 JVM 关闭。修复LOG4J2-280rpopma
Fix快速(滚动)FileAppender 现在可以正确处理超出缓冲区大小的消息。修复LOG4J2-295rpopma
Fix如果 append = false,带有 TimeBasedTriggeringPolicy 的 FastRollingFileAppender 现在可以正常工作。修复LOG4J2-271rpopma
Fix如果 append = false,带有 TimeBasedTriggeringPolicy 的 FastRollingFileAppender 现在可以正常工作。修复LOG4J2-267rpopma
FixFast(Rolling)FileAppender 现在可以正确地追加(不覆盖)现有文件。修复LOG4J2-292rpopma
Update现在可以不使用 Logger 名称或使用空的 Logger 名称来调用 LogManager.getLogger。修复LOG4J2-294rgoers
Fix将 javadoc 插件升级到 2.9.1,以解决 javadoc 安全问题。修复LOG4J2-289rgoers
Update将 JUnit 从 4.7 更新到 4.11. 修复LOG4J2-288gregory
Update将测试 H2 JDBC 驱动程序从 1.171 更新到 1.172. 修复LOG4J2-286gregory
Update将 Jansi jar 从 1.9 更新到 1.11. 修复LOG4J2-285gregory
Update将 Log4j 1 依赖项从 1.2.16 更新到 1.2.17. 修复LOG4J2-284gregory
Update更新 NoSQL 依赖项:从 0.0.5 开始的 lightcouch 0.0.6,从 2.11.1 开始的 mongodb 2.11.2. 修复LOG4J2-386gregory
Update删除对 Apache ORO jar 的依赖。修复LOG4J2-283gregory
UpdateRollingAppenderSizeTest.testAppender()等中的浪费的工作。修复LOG4J2-277gregory
Fix修复 NullPointerException(由于修复 LOG4J2-228 而导致的回归)。修复LOG4J2-139rgoers
Update在 RFC-5424 结构化数据中包括任意消息字段。修复LOG4J2-168。感谢 Scott Severtson。rgoers
Fix如果无法创建 Flume RPCClient,则 FlumeAvroManager 无法将失败事件通知 Client 端。修复LOG4J2-275rgoers
UpdateUUIDUtil 初始化中浪费的工作。修复LOG4J2-274ggregory
UpdateXMLLayout.toSerializable()中浪费的工作。修复LOG4J2-273ggregory

版本 2.0-beta7 – 2013-06-01

TypeChangesBy
Update允许 Log4jContextListener 中的上下文参数包含属性。修复LOG4J2-249rgoers
Fix不允许在 RFC5424Layout 上使用字符集-使用 UTF-8.修复LOG4J2-263rgoers
Fix现在,StringFormattedMessage 和 MessageFormatMessage 将接受 Throwable 作为其最后一个参数并将其传递。修复LOG4J2-242rgoers
Update允许自定义 LogEventFactories。修复LOG4J2-243rgoers
Update在嵌入式 Flume Appender 中添加对拦截器的支持。修复LOG4J2-262。感谢 Edward Sargisson。rgoers
Fix批量大小为 1 时使用事务。修正LOG4J2-269rgoers
Fix向非 Map 消息的 FlumeEventHeaders 添加 guid。修复LOG4J2-268rgoers
Fix数据缓冲区在 finally 子句中重置。修复LOG4J2-246rgoers
FixUDP 现在每个数据包发送一个事件。修复LOG4J2-228rgoers
Update接口 org.apache.logging.log4j.spi.ThreadContextMap 中的方法名称更改:getContext()到 getCopy(),get()到 getImmutableMapOrNull()。rpopma
Update通过写时复制 Map 和堆栈提高 ThreadContext 性能。修复LOG4J2-154rpopma
Fix向错误消息中添加缺少的“不”。修复LOG4J2-261。感谢 Edward Sargisson。rgoers
Add将核心分解为多个 osgi jar。修复LOG4J2-10。感谢蒂莫西·沃德。rgoers
FixLoggerContext 停止时删除 LoggerContext。修复LOG4J2-223rgoers
FixXML 布局未在 Content Type 中指定字符集。修复LOG4J2-260ggregory
FixHTML 布局未在 Content Type 中指定字符集。修复LOG4J2-259ggregory
FixHTML 布局不输出字符集的 meta 元素。修复LOG4J2-258ggregory
FixXML 布局忽略 XML 处理指令的 encoding 属性的字符集。修复LOG4J2-257ggregory
Fix现在假定多字节字符串采用平台默认编码,而不是 UTF-8.修复LOG4J2-255rpopma
Fix在 OutputStreamManager 中将 OutputStream 标记为 volatile。将页眉和页脚标记为最终。修复LOG4J2-254rgoers
Fix重写 Appender 忽略了引用的附加程序上的过滤器。修复LOG4J2-244rgoers
Fix如果 getCallerClass 和 SecurityManager 不可用,请避免 EmptyStack 异常。修复LOG4J2-245rgoers
Add新的 JDBC,JPA 和 NoSQL 数据库 Appenders。修复LOG4J2-229。感谢尼克·威廉姆斯。ggregory
FixSocketServer.isActive 应该是易失性的,因为它是从不同的线程访问的。修复LOG4J2-247ggregory
Add通过注册的 advertiser 提供配置信息(位置,Content Type,内容,如果可能)。修复LOG4J2-251sdeboy

版本 2.0-beta6 – 2013-05-05

TypeChangesBy
FixLogger.getParent()未返回正确的 Logger。修复LOG4J2-231rgoers
Fix将插件 Comments 属性从“类型”重命名为“类别”。修复LOG4J2-201rgoers
Update将 JMX Client GUI 类移到了单独的 jmx-gui 子模块中。修复LOG4J2-237rpopma
Fix修复:如果未配置(默认值),则安装默认的根 Logger,但请确保包括已配置的命名 Logger。澄清的文档。修复LOG4J2-219。感谢 Peter DePasquale。rpopma
Fix在 Fragment-Host 中使用 OSGi 版本格式。修复LOG4J2-159rgoers
FixRegexFilter 用作上下文范围的筛选器时,抛出 NullPointerException。修复LOG4J2-234rgoers
Fix在处理配置时添加对插值环境变量的支持。修复LOG4J2-192rgoers
Fix从核心模块中删除了对工具 jar 的依赖,使 jconsole 依赖成为可选。修复LOG4J2-235。感谢 Sebastian Oerding。rpopma
Fix修复了指向 log4j 用户邮件列表的链接。修复LOG4J2-233rpopma
Update错误配置时改进了错误报告。修复LOG4J2-230。感谢 WojciechZaręba。rpopma
Fix现在,Disruptor 将在 Tomcat 关闭期间关闭。修复LOG4J2-222。感谢杨致远。rgoers
Update将 AsynchAppender 重命名为 AsyncAppender。插件名称变为 Async(原为 Asynch)。rpopma
Update删除了 Javadoc 行尾“ *”后的 NewlineAtEndOfFile 和空格的 CheckStyle 误报。rpopma
Update将 Clock 接口移至 org.apache.logging.log4j.core.helpers 包。rpopma
Update文档更新,以阐明图案布局中位置的使用和影响。修复LOG4J2-225rpopma
Fix如果 Flume RPCClient 无法连接到任何 Flume 代理,则 FlumeAppender 无法启动。修复LOG4J2-224rgoers
Fix修复 LoggerContext 的启动和停止,以消除 IllegalStateException 和 NoClassDefFound 错误。修复LOG4J2-223rgoers
Fix删除数百个编译器警告。修复LOG4J2-221。感谢尼克·威廉姆斯。rgoers
Fix各种小型文档修复。修复LOG4J2-215rpopma
Fix确保 PluginManager 流始终关闭。修复LOG4J2-217。感谢 Fabien Sanglard。rpopma

版本 2.0-beta5 – 2013-04-20

TypeChangesBy
Fix修复 SocketAppender 中的死锁。添加了不 await 套接字重新连接的选项。修复LOG4J2-205rgoers
Add添加 JMX 支持。修复LOG4J2-207。感谢 Remko Popma。rgoers
Fix删除进入和退出方法输出中的多余空间。修复LOG4J2-211。感谢尼克·威廉姆斯。rgoers
Update异步文档更新。修复LOG4J2-214。感谢 Remko Popma。rgoers
Fix没有“。”的 Logger 没有父 Logger。修复LOG4J2-212rgoers
Update将异步子项目移至核心。修复LOG4J2-208。感谢 Remko Popma。rgoers
Fix当应用程序关闭时,调用 LoggerContext.stop。修复LOG4J2-212rgoers
Fix生成 XML 时,MapMessage 没有将键值括在引号中。修复LOG4J2-210。感谢 Arkin Yetis。rgoers
FixFlumeAvroManager 现在使用 Flume RPCClient。修复LOG4J2-198rgoers
FixFlumeAvroManager 现在使用 Flume RPCClient。修复LOG4J2-196rgoers
Fix将 Maven 组 ID org.apache.logging.log4j 用于所有工件。修复LOG4J2-207ggregory
Add添加标签库。修复LOG4J2-187。感谢尼克·威廉姆斯。rgoers
Fix现在,单元测试将在目标目录中创建文件。修复LOG4J2-195。感谢 Remko Popma。rgoers
FixRollingFastFileAppender(在 log4j-async 中)未翻转。修复LOG4J2-193。感谢 Remko Popma。rgoers
Fix在子导航中突出显示子项目。修复LOG4J2-199。感谢 Remko Popma。rgoers
FixLoggerContext 方法已重命名为 removeFiler 中的 removeFilter。修复LOG4J2-200。感谢 Remko Popma。rgoers
Fix由于 CR/LF 问题,Windows 上的 ThrowableFormatOptionsTest 失败。修复LOG4J2-194。感谢 Remko Popma。rgoers
FixBaseConfiguration addLoggerAppender 使用 Logger 名称保存的追加程序。修复LOG4J2-190。感谢 Werner。rgoers
Update将 Throwable 模式转换器选项处理移至 ThrowableFormatOptions 类。修复LOG4J2-160。感谢 Joanne Polsky。rgoers
Update允许 Logger 访问 LoggerConfig 中的属性。修复LOG4J2-157。感谢 Remko Popma。rgoers
Update增加了包含或排除位置信息的功能。修复LOG4J2-153。感谢 Remko Popma。rgoers
Update允许 Logger 和 LoggerContext 被子类化。修复LOG4J2-151。感谢 Remko Popma。rgoers
Add将方法 is/setEndOfBatch 添加到 LogEvent。修复LOG4J2-164。感谢 Remko Popma。rgoers
Add添加对异步 Logger 的支持。修复LOG4J2-163。感谢 Remko Popma。rgoers
Fix阻止参数在 AsynchAppender 上无法正常工作。修复LOG4J2-189。感谢 Werner。rgoers
FixAsynchAppender 上的 AppenderRefs 不支持 level 和 filter 元素。修复LOG4J2-188。感谢 Werner。rgoers
Fix避免在 AsynchAppender 中使用 IllegalArgumentException。修复LOG4J2-176。感谢 Remko Popma。rgoers
Add添加 Logger 接口 API 以在给定级别进行日志记录。修复LOG4J2-179ggregory
Fix现在,每当设置 OutputStream 时,OutputStreamManager 都会添加布局 Headers。修复LOG4J2-181rgoers
Fix从多个线程调用冲洗时,修复 DatagramOutputStream 中的 NullPointerException。修复LOG4J2-177。感谢 Remko Popma。rgoers
Add添加了 FlumePersistentManager,它先写入 BerkeleyDB,然后异步写入 Flume。rgoers
Fix调用 addPackages 时,应重置插件缓存。修复LOG4J2-175sdeboy
Add通过广告机制公开文件附加器配置详细信息。修复LOG4J2-155sdeboy
Fix将 Fragment-Host 添加到 MANIFEST.MF 中以获取 log4j-core。修复LOG4J2-159。感谢 Jan Winter。rgoers
Fix如果 LogManager 返回 SimpleLoggerContext,则配置器将引发 ClassCastException。修复LOG4J2-167rgoers
FixConfigurationFactory 会在每次调用时添加工厂。修复LOG4J2-169rgoers
Fix修改 ClassLoaderContextSelector 以使用具有上下文的子父层次结构中的第一个 ClassLoader,该上下文具有配置,以允许 JSP 使用 WebApp 的上下文和配置。修复LOG4J2-161rgoers
Unknown将符合 RFC 5424 的转义规则添加到 RFC5424Layout。修复LOG4J2-158。感谢 Scott Severtson。rgoers

版本 2.0-beta4 – 2013-01-28

TypeChangesBy
Fix在 Linux 系统上 LocalizedMessageTest 失败。修复LOG4J2-156。感谢 Andreas Born。ggregory
Fix如果在目标文件名上未指定目录,则 RollingFileAppender 的 FileRenameAction 抛出 NullPointerException。修复LOG4J2-152。感谢 Remko Popma。rgoers
Fix转换所有 System.getProperty 调用以使用 PropertiesUtil 抑制 SecurityExceptions。修复LOG4J2-150rgoers
FixThreadContextMapFilter 在键而不是键的值上匹配。修复LOG4J2-147。感谢威廉·伯恩斯。rgoers
Fix即使 FlumeAvroManager 无法连接到代理,也允许它初始化。rgoers
FixSMTPAppender 将仅缓存已过滤的事件。修复LOG4J2-149。感谢 Scott Severtson。rgoers
Fix添加缺少的序列号 ID。修复LOG4J2-145ggregory
FixRFC5424Layout 中的 NullPointerException。修复LOG4J2-144ggregory
Fix现在,如果日志消息为 null,则 MessagePatternConverter 返回“ null”。修复LOG4J2-143rgoers
Fix序列化 LogEvent 在输出流中未重置,导致它们不正确地反序列化。修复LOG4J2-142rgoers
Fix如果未指定协议,请修复 SocketAppender 中的空指针异常。对于 SocketAppender,协议默认为 TCP;对于 SyslogAppender,协议默认为 UDP。修复LOG4J2-139rgoers
Add向 SLF4J 适配器添加了 Log4j 2.rgoers
FixSocketAppender 文档中的错字。修复LOG4J2-140。感谢 Joern Huxhorn。ggregory
Fix修复 Dumbster SMTP 测试服务器中的挂起。修复LOG4J2-137rgoers
Update允许换行符在 Syslog 和 RFC5424 布局中转义。允许将 Throwables 包含在 RFC5424Layout 的输出中。修复LOG4J2-136。感谢 Scott Severtson。rgoers
Add添加 SMTPAppender。修复LOG4J2-131。感谢 Scott Severtson。rgoers
FixPatternLayout 应该在无需转换器的情况下格式化可抛出对象。修复LOG4J2-130rgoers
Add向属性 Map 添加了 hostName 和 contextName。rgoers
FixBaseConfiguration 不会关闭第一个附加程序。修复LOG4J2-135。感谢 Ingo Feltes。ggregory
Add添加 MessageFormatMessage 和 FormattedMessage。rgoers
Add在控制台附加程序中使用%red,%white,%blue 等。修复LOG4J2-134ggregory
Add允许通过消息工厂创建自定义消息。修复LOG4J2-133ggregory
FixAbstractLogger.catching(Throwable)检查调试级别,但以错误级别记录。修复LOG4J2-132ggregory
FixRoutingAppender 仅为默认 Route 创建一个附加程序。修复LOG4J2-129rgoers
Fix如果队列或主题不可用,则允许 JMS 追加程序恢复。修复LOG4J2-126rgoers
Update将关注属性添加到控制台 Appender。修复LOG4J2-128rgoers
FixAbstractLogger 方法未将 Marks 传递给 isEnabled 方法。修复LOG4J2-127rgoers
Add添加了 Flume Appender 示例。rgoers
Update添加单元测试以验证套接字连接失败时引发异常。修复LOG4J2-122rgoers
FixJMSQueue 和 JMSTopic Appenders 不允许指定名称。修复LOG4J2-125rgoers
Fix增强的 javadoc 版权声明。修复LOG4J2-111rgoers
Update将 log4j12-api 重命名为 log4j-1.2-api。修复LOG4J2-110rgoers
Fix如果无法构建初始连接,TCPSocketManager 将失败。修复LOG4J2-120rgoers
Fix套接字连接断开将导致 TCPSocketManager 不断重新连接。修复LOG4J2-119rgoers
FixThreadContextMapFilter 的示例不正确。修复LOG4J2-123。感谢 Olivier Lamy。rgoers
Fix文件重命名使用错误的日期值。增强的 DefaultRolloverStrategy,可以以最高索引和最低索引存储最新文件。修复LOG4J2-116rgoers
Fix现在,在构造 Flume 事件时以及在 RFC5424 布局中将忽略具有空值的 ThreadContext Map 元素。修复LOG4J2-115rgoers
FixKeyValuePairs 的 PluginAttr 而不是 PluginElementComments 了 StructuredDataFilter createFilter。修复LOG4J2-113rgoers
FixStructuredDataMessage 正在验证事件 Map 中值的长度,而不是键的长度。修复LOG4J2-114。感谢 Arkin Yetis。rgoers

版本 2.0-beta3 – 2012-11-11

TypeChangesBy
Fix当 SecurityManager 没有返回任何类时,修复 ClassLoaderContextSelector 中的 NullPointerException。修复LOG4J2-108rgoers
Update在 LevelPatternConverter 中添加自定义关卡名称的功能。修复LOG4J2-105rgoers
FixPatternParser 没有正确处理相邻的嵌套选项。修复LOG4J2-107rgoers
Fix添加对在 OSGiBinding 包内加载插件的支持。修复LOG4J2-95rgoers
Update添加 ThreadContext.push(String format,Object ... args)。修复LOG4J2-85rgoers
Fix反序列化时,LogEvent 将 ThrowableProxy 与另一个 ThrowableProxy 包装在一起。修复LOG4J2-103。感谢 Das Archive。rgoers
Update创建了组合的 jar,以将 API 和 Core 内容组合在一起,供仅需要 Log4j 实现的用户使用。rgoers
Fix将 LogManager 绑定转换为使用“常规” java 属性而不是 XML 属性,以解决 Oracle xmlparserv2 jar 中的错误。修复LOG4J2-104rgoers
Add添加了 PropertiesRewritePolicy 以及在 Logger 上定义属性的功能。修复LOG4J2-28rgoers
Update构建 pdf 的使用者指南。修复LOG4J2-87rgoers
Update向 HTMLLayout 添加了 font 和 fontSize 参数。用 br 标签替换邮件中的换行符。修复LOG4J2-29rgoers
Add增加了从 InputSource 配置的功能。修复LOG4J2-55rgoers
Fix设施值计算不正确。修复LOG4J2-102。感谢 Emanuele Colombo。rgoers
Fix如果未将任何格式值传递给 SyslogAppender,则将发生 NullPointerException。修复LOG4J2-101。感谢 Emanuele Colombo。rgoers
FixMapRewritePolicy 对 putAll 进行了额外的调用,这导致更新的行为类似于添加。修复LOG4J2-99。感谢 Das Archive。rgoers
Fix如果存在重复的 LoggerContextFactory,请避免使用 NPE。允许工厂指定权重,以允许实际的实施方案胜过测试的实施方案。提供一个简单的默认 LoggerContextFactory。rgoers
Fix为 Log4j 1.x 兼容性添加了一些缺少的类和方法。修复LOG4J2-97rgoers
Fix尝试查找变量的默认值时,Interpolator 并未剥离 Lookup 键分隔符。修复LOG4J2-94。感谢 Denis Treskunov。rgoers
FixLog4j 1.2 Category.forcedLog 使用对象消息包装消息,即使参数是对象消息也是如此。rgoers

版本 2.0-beta2 – 2012-10-07

TypeChangesBy
Update使 ParameterizedMessage,StringFormattedMessage 和 ThreadDumpMessage 不可变。 LocalizedMessage 是不可变的,只不过它在添加到 LogEvent 时将使用 Logger 名称进行更新。rgoers
FixDefaultConfiguration 没有启动控制台 Appender。rgoers
Add将间隔和调制选项添加到 TimeBasedTriggeringPolicy 中,以便可以更精细地控制何时应进行文件滚动。修复LOG4J2-35rgoers
Add添加对从堆栈跟踪中筛选软件包的支持。修复LOG4J2-58rgoers
Add如果设置了系统属性“ disableThreadContextStack”,则对 ThreadContext 的推送将被忽略。如果设置了系统属性“ disableThreadContext”,则 puts 和 pushs 都将被忽略。修复LOG4J2-84rgoers
Add如果设置了系统属性“ disableThreadContextMap”,则放置到 ThreadContext 的内容将被忽略。如果设置了系统属性“ disableThreadContext”,则 puts 和 pushs 都将被忽略。修复LOG4J2-83rgoers
Add通过添加突出显示和样式模式转换器来增加对 ANSI 颜色的支持。修复模式分析以允许嵌套模式。rgoers
Fix将 DynamicThresholdFilter 转换为使用 KeyValuePair。修复了基于 Map 的过滤器中的错误,该错误允许声明多个值以匹配文档。修复LOG4J2-92rgoers
FixAbstractLogger 中的许多日志记录方法都设置为错误的日志记录级别。捕获使用 THROWING 标记,并设置为调试而不是错误。修复LOG4J2-88rgoers
Add允许将状态日志记录定向到 stderr 或文件。rgoers
FixLog4j 1.2 适配器的 Category 类缺少 3 个日志方法。修复LOG4J2-91rgoers
Fix如果 ThreadContext 堆栈为空,则 LogEvent 将包含一个空值,以减少创建日志事件的开销以及序列化对象的大小。将 ThreadContext 堆栈更改为使用自定义堆栈接口而不是 java.util.Stack,因为该类太重了。此更改将导致 API 不兼容。修复LOG4J2-84rgoers
Fix如果 ThreadContextMap 为空,则 LogEvent 将包含一个空值,以减少创建日志事件的开销以及序列化对象的大小。修复LOG4J2-83rgoers
Add将 getFormats 添加到 MultiformatMessage,并允许 StructuredDataMessage 格式化为 XML。rgoers
Fix将有关 Client 端和服务器模式的文档添加到性能页面。修复LOG4J2-90rgoers
Fix将变量替换从 PatternLayout 移到适当的转换器以提高性能。rgoers

版本 2.0-beta1 – 2012-09-18

TypeChangesBy
AddAdded AsynchAppender.rgoers
FixPatternLayout 不支持格式修饰符。修复LOG4J-81rgoers
Fix创建了 Web 模块,以允许 Web 应用程序在 WEB-INF/lib 中包括 Log4j 上下文侦听器,即使 Log4j 在容器的 Classpath 中也是如此。允许定位 LoggerContext 以包括 ClassLoader。更新了 LoaderUtil,以始终选择子 ClassLoader。在 Jboss 5 和 Tomcat 中进行了验证。rgoers
Fix称为 MarkerManager.getMarker 的 MarkerFilter 导致在处理配置期间创建 Marker。这样可以防止应用程序与任何 parent 一起创建标记。 SLF4J-impl 中的 MarkerWrapper 在 instanceOf 中获得了 ClassCastException,因为 Marker 不是 MarkerWrapper。修复LOG4J2-82rgoers
Fix通过将过滤添加到 SLF4JLogger 中的 log 方法,允许将 Log4j 2 用作 SLF4J 和 SLF4J 的 jcl-over-slf4j 的实现。修复LOG4J2-80。感谢 Oliver Lamy。rgoers
Fix传递空值时,Commons Loggingbridge 中的 LogFactoryImpl.setAttribute 获得了 NullPointerException。现在它将删除该属性。修复LOG4J2-78rgoers
FixRoutingAppender 正在为其引用的每个 Appender 调用 stop 方法,并第二次调用默认 Appender 的 stop 方法。现在,它将仅调用其创建的 Appenders 的 stop 方法。修复LOG4J2-77rgoers
FixRewriteAppender 调用了被引用的附加程序的 stop 方法,导致被引用的附加程序的 Management 器的使用次数减少了太多次。修复LOG4J2-76rgoers
FixLogger.error(Marker,Message,Throwable)在内部使用 Level.TRACE。修复LOG4J2-74rgoers
Fix增强的 Log4jContextListener 接受配置文件位置。修改了 FileConfigurationMonitor 以监视以这种方式配置的文件。修复了其他与重新配置有关的错误。在 JBoss 和 Tomcat 中测试。修复LOG4J2-75rgoers
Fix如果 filePattern 不导致文件被压缩,则 RollingFileManager 中的 NullPointerException。修复LOG4J2-72rgoers
FixFileRenameAction 没有创建归档文件的父目录,从而导致过渡失败。修复LOG4J2-71rgoers
Update更新 SLF4J 和 Logback 的版本。rgoers

版本 2.0-alpha2 – 2012-08-24

TypeChangesBy
Add将 getLogger(Class)添加到 LogManager。修复LOG4J2-70rgoers
Add允许将 Flume 代理嵌入 Flume Appender。修复LOG4J2-69rgoers
Add添加对使用 String.format()进行格式化的支持。修复LOG4J2-68rgoers
Add允许核心以外的组件创建 PluginMap,以更快地加载插件,而不必在配置中指定插件包。修复LOG4J2-67rgoers
Fix修复 Java 7 中的编译问题。修复LOG4J2-64rgoers
Fix允许在配置属性和根日志级别上进行变量替换。修复LOG4J2-65rgoers

版本 2.0-alpha1 – 2012-07-29

TypeChangesBy
Add通过添加级别或过滤器,可以对 AppenderRef 进行过滤。修复LOG4J2-60。感谢 Shane Kelly。rgoers
FixLevel.toLevel 将抛出 IllegalArgumentException 而不是返回默认值。修复LOG4J2-56。感谢 John Owen Atala。rgoers
Fix删除对自定义 Logger 工厂的 LoggerContext 支持。 LoggerContext 返回的所有 Logger 都应该兼容并且具有相同的类型。修复LOG4J2-51。感谢 John Vasileff。rgoers
Fix确保所有面向应用程序的日志方法都使用其自己的 FQCN。使用类别 Logger 时,此修补程序解决了%C 模式的单元测试失败。修复LOG4J2-50。感谢 John Vasileff。rgoers