This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch 2.x-site-pro in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 57c4f5f14e31f5852cd8c67fc9c2549166eb5f77 Merge: d42d28ff96 ea10ad3e78 Author: Piotr P. Karwasz <[email protected]> AuthorDate: Mon Jun 16 21:49:30 2025 +0200 Merge tag 'rel/2.25.0' into 2.x-site-pro Release `2.25.0` .cherry_picker.toml | 24 + log4j-1.2-api/bnd.bnd => .github/FUNDING.yml | 16 +- .github/dependabot.yaml | 65 +- .github/generate-email.sh | 7 +- .github/pull_request_template.md | 43 +- .github/workflows/build.yaml | 32 +- .github/workflows/close-stale.yaml | 2 +- .github/workflows/codeql-analysis.yaml | 2 +- .github/workflows/deploy-site.yaml | 6 +- .../workflows/develocity-publish-build-scans.yaml | 10 +- .github/workflows/merge-dependabot.yaml | 6 +- .gitignore | 2 + .mvn/develocity.xml | 2 +- BUILDING.adoc | 77 +- README.adoc | 6 + log4j-1.2-api/pom.xml | 45 +- .../src/main/java/org/apache/log4j/Hierarchy.java | 7 + .../src/main/java/org/apache/log4j/Level.java | 4 +- .../src/main/java/org/apache/log4j/Logger.java | 2 +- .../src/main/java/org/apache/log4j/Priority.java | 31 +- .../org/apache/log4j/bridge/FilterAdapter.java | 2 +- .../org/apache/log4j/bridge/LogEventAdapter.java | 4 +- .../org/apache/log4j/bridge/LogEventWrapper.java | 19 + .../builders/filter/StringMatchFilterBuilder.java | 2 +- .../org/apache/log4j/helpers/PatternParser.java | 14 +- .../org/apache/log4j/helpers/UtilLoggingLevel.java | 4 + .../org/apache/log4j/helpers/package-info.java | 2 +- .../org/apache/log4j/rewrite/MapRewritePolicy.java | 1 - .../log4j/rewrite/PropertyRewritePolicy.java | 1 - .../java/org/apache/log4j/spi/LoggingEvent.java | 2 +- .../org/apache/log4j/xml/XmlConfiguration.java | 2 - .../org/apache/log4j/BasicConfiguratorTest.java | 12 +- .../org/apache/log4j/CallerInformationTest.java | 35 +- .../test/java/org/apache/log4j/CategoryTest.java | 159 ++-- .../java/org/apache/log4j/ConsoleAppenderTest.java | 10 +- .../src/test/java/org/apache/log4j/LayoutTest.java | 3 +- .../src/test/java/org/apache/log4j/LevelTest.java | 90 ++- .../test/java/org/apache/log4j/ListAppender.java | 3 +- .../test/java/org/apache/log4j/LogManagerTest.java | 8 +- .../test/java/org/apache/log4j/LogWithMDCTest.java | 30 +- .../java/org/apache/log4j/LogWithRouteTest.java | 30 +- .../java/org/apache/log4j/LoggerJira3410Test.java | 20 +- .../src/test/java/org/apache/log4j/LoggerTest.java | 165 ++-- .../test/java/org/apache/log4j/LoggingTest.java | 23 +- .../test/java/org/apache/log4j/MDCTestCase.java | 27 +- .../src/test/java/org/apache/log4j/NDCTest.java | 17 +- .../test/java/org/apache/log4j/PriorityTest.java | 97 ++- .../org/apache/log4j/PropertyConfiguratorTest.java | 32 +- .../test/java/org/apache/log4j/VelocityTest.java | 60 -- .../apache/log4j/bridge/LogEventWrapperTest.java | 12 +- .../apache/log4j/builders/BuilderManagerTest.java | 4 +- .../filter/LevelRangeFilterBuilderTest.java | 16 +- .../builders/layout/PatternLayoutBuilderTest.java | 10 +- .../AbstractLog4j1ConfigurationConverterTest.java | 17 +- .../config/AbstractLog4j1ConfigurationTest.java | 335 ++++----- .../org/apache/log4j/config/AsyncAppenderTest.java | 4 +- .../org/apache/log4j/config/AutoConfigTest.java | 24 +- .../Log4j1ConfigurationConverterHadoopTest.java | 16 +- .../Log4j1ConfigurationConverterSparkTest.java | 16 +- .../config/Log4j1ConfigurationFactoryTest.java | 59 +- .../log4j/config/MapRewriteAppenderTest.java | 35 +- .../config/PropertiesConfigurationFactoryTest.java | 22 +- .../log4j/config/PropertiesConfigurationTest.java | 68 +- .../config/PropertiesReconfigurationTest.java | 31 +- .../PropertiesRollingWithPropertiesTest.java | 30 +- .../apache/log4j/config/RewriteAppenderTest.java | 37 +- .../config/SocketAppenderConfigurationTest.java | 15 +- .../config/SyslogAppenderConfigurationTest.java | 16 +- .../apache/log4j/config/SyslogAppenderTest.java | 15 +- .../org/apache/log4j/config/TestConfigurator.java | 4 +- .../log4j/config/XmlConfigurationFactoryTest.java | 22 +- .../apache/log4j/config/XmlConfigurationTest.java | 44 +- .../log4j/config/XmlReconfigurationTest.java | 19 +- .../log4j/config/XmlRollingWithPropertiesTest.java | 29 +- .../apache/log4j/helpers/BoundedFIFOTestCase.java | 20 +- .../apache/log4j/helpers/CyclicBufferTestCase.java | 22 +- .../log4j/helpers/OptionConverterLevelTest.java | 13 +- .../apache/log4j/helpers/UtilLoggingLevelTest.java | 11 +- .../log4j/layout/Log4j1SyslogLayoutTest.java | 4 +- .../apache/log4j/layout/Log4j1XmlLayoutTest.java | 17 +- .../apache/log4j/pattern/FormattingInfoTest.java | 4 +- .../pattern/Log4j1LevelPatternConverterTest.java | 4 +- .../pattern/Log4j1MdcPatternConverterTest.java | 14 +- .../pattern/Log4j1NdcPatternConverterTest.java | 21 +- .../apache/log4j/pattern/NameAbbreviatorTest.java | 2 +- .../apache/log4j/spi/ThrowableInformationTest.java | 10 +- .../test/java/org/apache/log4j/util/Compare.java | 155 ---- .../java/org/apache/log4j/util/ControlFilter.java | 45 -- .../log4j/util/EnhancedJunitTestRunnerFilter.java | 64 -- .../log4j/util/EnhancedLineNumberFilter.java | 41 - .../test/java/org/apache/log4j/util/Filter.java | 34 - .../apache/log4j/util/JunitTestRunnerFilter.java | 53 -- .../org/apache/log4j/util/RelativeTimeFilter.java | 35 - .../apache/log4j/util/SerializationTestHelper.java | 6 +- .../org/apache/log4j/util/SunReflectFilter.java | 42 -- .../java/org/apache/log4j/util/Transformer.java | 59 -- .../apache/log4j/util/XMLLineAttributeFilter.java | 35 - .../org/apache/log4j/util/XMLTimestampFilter.java | 32 - .../java/org/apache/log4j/xml/DOMTestCase.java | 389 +--------- .../src/test/resources/DOMTestCase/DOMTest4.xml | 44 -- .../resources/DOMTestCase/categoryfactory1.xml | 35 - .../resources/DOMTestCase/categoryfactory2.xml | 38 - .../test/resources/DOMTestCase/loggerfactory1.xml | 35 - ...ableRenderer1.xml => testThrowableRenderer.xml} | 8 +- log4j-1.2-api/src/test/resources/hello.vm | 6 - .../apache/logging/log4j/util/StackLocator.java | 4 - .../log4j/util/java9/ProcessIdUtilTest.java | 4 +- .../logging/log4j/util/java9/StackLocatorTest.java | 22 +- .../log4j/test/AbstractSerializationTest.java | 2 +- .../log4j/test/ThreadContextUtilityClass.java | 4 +- .../log4j/test/junit/Log4jStaticResources.java | 2 - .../logging/log4j/test/junit/SetTestProperty.java | 5 +- .../logging/log4j/test/junit/TempLoggingDir.java | 3 +- .../log4j/test/junit/TempLoggingDirectory.java | 56 +- .../log4j/test/junit/UsingStatusListener.java | 4 +- .../log4j/test/junit/UsingTestProperties.java | 3 +- .../logging/log4j/test/junit/package-info.java | 4 +- .../apache/logging/log4j/AbstractLoggerTest.java | 42 +- .../logging/log4j/CloseableThreadContextTest.java | 30 +- .../org/apache/logging/log4j/EventLoggerTest.java | 6 +- .../org/apache/logging/log4j/LambdaLoggerTest.java | 146 ++-- .../java/org/apache/logging/log4j/LevelTest.java | 22 +- .../org/apache/logging/log4j/LogManagerTest.java | 22 +- .../apache/logging/log4j/LoggerSupplierTest.java | 30 +- .../java/org/apache/logging/log4j/LoggerTest.java | 114 +-- .../java/org/apache/logging/log4j/MarkerTest.java | 20 +- .../logging/log4j/NoopThreadContextTest.java | 4 +- .../log4j/ThreadContextInheritanceTest.java | 32 +- .../apache/logging/log4j/ThreadContextTest.java | 36 +- .../org/apache/logging/log4j/TraceLoggingTest.java | 6 +- .../log4j/internal/DefaultLogBuilderTest.java | 4 +- .../map/UnmodifiableArrayBackedMapTest.java | 94 ++- .../log4j/message/FormattedMessageTest.java | 26 +- .../log4j/message/LocalizedMessageFactoryTest.java | 14 +- .../log4j/message/LocalizedMessageTest.java | 14 +- .../logging/log4j/message/MapMessageTest.java | 54 +- .../log4j/message/MessageFormatMessageTest.java | 16 +- .../log4j/message/MessageFormatsPerfTest.java | 20 +- .../log4j/message/ObjectArrayMessageTest.java | 6 +- .../logging/log4j/message/ObjectMessageTest.java | 12 +- .../log4j/message/ParameterFormatterTest.java | 43 +- .../log4j/message/ReusableMessageFactoryTest.java | 13 +- .../log4j/message/ReusableObjectMessageTest.java | 24 +- .../message/ReusableParameterizedMessageTest.java | 24 +- .../log4j/message/ReusableSimpleMessageTest.java | 24 +- .../logging/log4j/message/SimpleMessageTest.java | 4 +- .../log4j/message/StringFormattedMessageTest.java | 20 +- .../log4j/message/StructuredDataMessageTest.java | 16 +- .../log4j/message/ThreadDumpMessageTest.java | 12 +- .../logging/log4j/simple/SimpleLoggerTest.java | 12 +- .../log4j/spi/DefaultThreadContextStackTest.java | 52 +- .../logging/log4j/spi/LoggerAdapterTest.java | 6 +- .../log4j/spi/MutableThreadContextStackTest.java | 66 +- .../logging/log4j/status/StatusDataTest.java | 52 ++ .../logging/log4j/status/StatusLoggerTest.java | 56 ++ .../log4j/test/junit/TempLoggingDirectoryTest.java | 8 +- .../log4j/test/junit/TestPropertySourceTest.java | 8 +- .../org/apache/logging/log4j/util/CharsTest.java | 6 +- .../apache/logging/log4j/util/ConstantsTest.java | 4 +- .../log4j/util/EnvironmentPropertySourceTest.java | 4 +- .../apache/logging/log4j/util/LambdaUtilTest.java | 24 +- .../util/LegacyPropertiesCompatibilityTest.java | 4 +- .../log4j/util/Log4jCharsetsPropertiesTest.java | 4 +- .../logging/log4j/util/ProcessIdUtilTest.java | 6 +- .../log4j/util/PropertiesPropertySourceTest.java | 6 +- .../log4j/util/PropertiesUtilOrderTest.java | 6 +- .../logging/log4j/util/PropertiesUtilTest.java | 69 +- .../log4j/util/PropertySourceCamelCaseTest.java | 4 +- .../log4j/util/PropertySourceTokenizerTest.java | 4 +- .../logging/log4j/util/ServiceLoaderUtilTest.java | 8 +- .../log4j/util/SortedArrayStringMapTest.java | 118 +-- .../logging/log4j/util/StackLocatorTestIT.java | 5 +- .../logging/log4j/util/StackLocatorUtilTest.java | 20 +- .../logging/log4j/util/StringBuildersTest.java | 12 +- .../org/apache/logging/log4j/util/StringsTest.java | 18 +- .../util/SystemPropertiesPropertySourceTest.java | 4 +- .../org/apache/logging/log4j/util/Unbox1Test.java | 26 +- .../logging/log4j/util/Unbox2ConfigurableTest.java | 10 +- .../main/java/org/apache/logging/log4j/Level.java | 2 - .../internal/map/UnmodifiableArrayBackedMap.java | 11 +- .../logging/log4j/message/ParameterFormatter.java | 149 +++- .../log4j/message/ReusableObjectMessage.java | 6 +- .../message/ReusableParameterizedMessage.java | 6 +- .../log4j/message/ReusableSimpleMessage.java | 6 +- .../logging/log4j/message/StructuredDataId.java | 2 - .../logging/log4j/spi/DefaultThreadContextMap.java | 16 +- .../apache/logging/log4j/spi/LoggerRegistry.java | 36 +- .../apache/logging/log4j/status/StatusData.java | 7 +- .../apache/logging/log4j/status/StatusLogger.java | 2 +- .../org/apache/logging/log4j/util/Base64Util.java | 40 +- .../util/PrivateSecurityManagerStackTraceUtil.java | 31 +- .../apache/logging/log4j/util/PropertiesUtil.java | 35 +- .../logging/log4j/util/ServiceLoaderUtil.java | 2 - .../logging/log4j/util/SortedArrayStringMap.java | 33 +- .../apache/logging/log4j/util/package-info.java | 2 +- .../log4j-api/resource-config.json | 9 + log4j-appserver/pom.xml | 2 +- .../log4j/appserver/jetty/Log4j2Logger.java | 2 + .../log4j/appserver/tomcat/TomcatLogger.java | 2 + log4j-cassandra/pom.xml | 2 +- .../logging/log4j/cassandra/CassandraRule.java | 4 +- log4j-core-its/pom.xml | 2 +- .../logging/log4j/FilterPerformanceComparison.java | 41 +- .../logging/log4j/PerformanceComparison.java | 23 +- .../org/apache/logging/log4j/PerformanceRun.java | 2 +- .../apache/logging/log4j/core/SimplePerfTest.java | 37 +- .../logging/log4j/core/ThreadedPerfTest.java | 17 +- .../apache/logging/log4j/core/ThreadedTest.java | 9 +- .../log4j/core/async/perftest/PerfTestDriver.java | 9 +- log4j-core-java9/src/assembly/java9.xml | 1 - .../apache/logging/log4j/core/time/Instant.java | 77 -- .../logging/log4j/core/time/MutableInstant.java | 157 ---- .../logging/log4j/core/time/PreciseClock.java | 38 - .../logging/log4j/core/util/SystemClock.java | 46 -- log4j-core-test/pom.xml | 73 +- .../log4j/core/test/appender/ListAppender.java | 8 +- .../log4j/core/test/categories/Layouts.java | 2 - .../log4j/core/test/categories/package-info.java | 4 +- .../log4j/core/test/junit/LoggerContextSource.java | 10 +- .../log4j/core/test/junit/package-info.java | 2 +- .../src/test/java/foo/TestFriendlyException.java | 174 +++++ .../log4j/FormatterLoggerManualExample.java | 2 +- .../apache/logging/log4j/MarkerMixInJsonTest.java | 7 +- .../org/apache/logging/log4j/MarkerMixInTest.java | 35 +- .../apache/logging/log4j/MarkerMixInXmlTest.java | 7 +- .../apache/logging/log4j/MarkerMixInYamlTest.java | 7 +- .../log4j/core/AppenderRefLevelJsonTest.java | 8 +- .../logging/log4j/core/AppenderRefLevelTest.java | 12 +- .../logging/log4j/core/BasicLoggingTest.java | 4 +- .../logging/log4j/core/CollectionLoggingTest.java | 8 +- .../log4j/core/CustomLevelsOverrideTest.java | 10 +- .../logging/log4j/core/CustomLevelsTest.java | 8 +- .../log4j/core/CustomLevelsWithFiltersTest.java | 10 +- .../apache/logging/log4j/core/DeadlockTest.java | 4 +- .../log4j/core/EventParameterMemoryLeakTest.java | 145 ++-- .../logging/log4j/core/ExtendedLevelTest.java | 4 +- .../log4j/core/GarbageCollectionHelper.java | 66 -- .../log4j/core/GcFreeAsynchronousLoggingTest.java | 4 +- .../core/GcFreeMixedSyncAsyncLoggingTest.java | 4 +- .../log4j/core/GcFreeSynchronousLoggingTest.java | 4 +- .../org/apache/logging/log4j/core/GcHelper.java | 54 ++ .../apache/logging/log4j/core/GcHelperTest.java | 15 +- .../logging/log4j/core/GcPressureGenerator.java | 81 ++ .../apache/logging/log4j/core/HostNameTest.java | 4 +- .../apache/logging/log4j/core/LateConfigTest.java | 14 +- .../org/apache/logging/log4j/core/LevelTest.java | 4 +- .../apache/logging/log4j/core/Log4j1222Test.java | 11 +- .../apache/logging/log4j/core/LogEventTest.java | 12 +- .../logging/log4j/core/LoggerContextTest.java | 38 + .../apache/logging/log4j/core/LoggerDateTest.java | 2 +- .../LoggerMessageFactoryCustomizationTest.java | 59 +- ...oggerMessageFactoryDefaultsTlaDisabledTest.java | 15 +- ...LoggerMessageFactoryDefaultsTlaEnabledTest.java | 18 +- .../org/apache/logging/log4j/core/LoggerTest.java | 74 +- .../logging/log4j/core/LoggerUpdateTest.java | 6 +- .../org/apache/logging/log4j/core/LookupTest.java | 7 +- .../logging/log4j/core/MonitorResourcesTest.java | 126 ++++ ...rnResolverDoesNotEvaluateThreadContextTest.java | 10 +- .../logging/log4j/core/PatternSelectorTest.java | 8 +- .../log4j/core/PatternVariableResolverTest.java | 2 +- .../log4j/core/PropertiesFileConfigTest.java | 2 +- ...ReusableParameterizedMessageMemoryLeakTest.java | 39 +- .../logging/log4j/core/ShutdownDisabledTest.java | 12 +- .../core/ShutdownTimeoutConfigurationTest.java | 4 +- .../logging/log4j/core/StrictXmlConfigTest.java | 22 +- .../logging/log4j/core/TimestampMessageTest.java | 8 +- .../org/apache/logging/log4j/core/XmlEvents.java | 4 +- .../core/appender/AbstractAppenderBuilderTest.java | 4 +- .../appender/AsyncAppenderQueueFullPolicyTest.java | 6 +- .../log4j/core/appender/AsyncAppenderTest.java | 32 +- .../appender/ConsoleAppenderAnsiMessagesMain.java | 5 +- .../ConsoleAppenderAnsiStyleJira180Main.java | 8 +- .../ConsoleAppenderAnsiStyleJira272Main.java | 8 +- .../ConsoleAppenderAnsiStyleJira319Main.java | 8 +- .../ConsoleAppenderAnsiStyleLayoutMain.java | 12 +- .../ConsoleAppenderAnsiStyleNameLayoutMain.java | 3 +- ...java => ConsoleAppenderAnsiXExceptionMain.java} | 19 +- .../core/appender/ConsoleAppenderBuilderTest.java | 8 +- .../ConsoleAppenderDefaultSuppressedThrowable.java | 11 +- .../ConsoleAppenderHighlightLayoutDefaultMain.java | 3 +- .../ConsoleAppenderHighlightLayoutMain.java | 3 +- .../appender/ConsoleAppenderJAnsiMessageMain.java | 84 --- ...leAppenderJira1002ShortThrowableLayoutMain.java | 4 +- .../ConsoleAppenderNoAnsiStyleLayoutMain.java | 9 +- .../log4j/core/appender/ConsoleAppenderTest.java | 16 +- .../log4j/core/appender/FailoverAppenderTest.java | 51 +- .../FailoverFailedPrimaryAppenderTest.java | 16 +- .../core/appender/FileAppenderBuilderTest.java | 12 +- .../core/appender/FileAppenderPermissionsTest.java | 14 +- .../log4j/core/appender/FileAppenderTest.java | 21 +- .../core/appender/HttpAppenderBuilderTest.java | 130 ++++ .../log4j/core/appender/HttpAppenderTest.java | 2 +- .../log4j/core/appender/InMemoryAppenderTest.java | 8 +- .../core/appender/JansiConsoleAppenderJira965.java | 28 - .../appender/JsonCompleteFileAppenderTest.java | 7 +- .../log4j/core/appender/LineReadingTcpServer.java | 4 +- .../appender/MemoryMappedFileAppenderTest.java | 6 +- .../core/appender/MemoryMappedFileManagerTest.java | 6 +- .../core/appender/OutputStreamAppenderTest.java | 42 +- .../core/appender/OutputStreamManagerTest.java | 4 +- .../appender/RandomAccessFileAppenderTest.java | 2 +- .../core/appender/RandomAccessFileManagerTest.java | 12 +- .../core/appender/ReconfigureAppenderTest.java | 4 +- .../core/appender/ScriptAppenderSelectorTest.java | 2 +- .../log4j/core/appender/SmtpAppenderTest.java | 36 +- .../core/appender/SocketAppenderBuilderTest.java | 4 +- .../core/appender/SocketAppenderReconnectTest.java | 38 +- .../appender/SocketAppenderSocketOptionsTest.java | 8 +- .../SocketAppenderSslSocketOptionsTest.java | 2 +- .../log4j/core/appender/SocketAppenderTest.java | 86 +-- .../core/appender/SyslogAppenderTestBase.java | 32 +- .../log4j/core/appender/TlsSyslogAppenderTest.java | 10 +- .../log4j/core/appender/TlsSyslogFrameTest.java | 8 +- .../log4j/core/appender/WriterAppenderTest.java | 12 +- .../core/appender/XmlCompactFileAppenderTest.java | 39 +- .../core/appender/XmlCompleteFileAppenderTest.java | 11 +- .../log4j/core/appender/XmlFileAppenderTest.java | 30 +- .../appender/db/AbstractDatabaseAppenderTest.java | 5 +- .../appender/db/AbstractDatabaseManagerTest.java | 82 +- .../db/jdbc/AbstractJdbcDataSourceTest.java | 4 +- .../core/appender/db/jdbc/ColumnConfigTest.java | 170 ++--- .../jdbc/JdbcAppenderStringSubstitutionTest.java | 2 +- .../log4j/core/appender/mom/JmsAppenderTest.java | 4 +- .../appender/mom/jeromq/JeroMqAppenderTest.java | 10 +- .../core/appender/mom/jeromq/JeroMqTestClient.java | 2 +- .../mom/kafka/KafkaAppenderCloseTimeoutTest.java | 6 +- .../core/appender/mom/kafka/KafkaAppenderTest.java | 17 +- .../kafka/KafkaManagerProducerThreadLeakTest.java | 7 +- .../core/appender/nosql/NoSqlAppenderTest.java | 36 +- .../rewrite/LoggerNameLevelRewritePolicyTest.java | 4 +- .../appender/rewrite/MapRewritePolicyTest.java | 15 +- .../core/appender/rewrite/RewriteAppenderTest.java | 10 +- .../appender/rolling/CronTriggeringPolicyTest.java | 16 +- .../core/appender/rolling/EligibleFilesTest.java | 12 +- .../log4j/core/appender/rolling/FileSizeTest.java | 2 +- .../rolling/OnStartupTriggeringPolicyTest.java | 8 +- .../appender/rolling/PatternProcessorTest.java | 52 +- .../RandomRollingAppenderOnStartupTest.java | 11 +- .../appender/rolling/RollingAppenderCountTest.java | 2 +- .../RollingAppenderCronAndSizeLookupTest.java | 6 +- .../rolling/RollingAppenderCronAndSizeTest.java | 4 +- .../rolling/RollingAppenderCronOnStartupTest.java | 28 +- .../rolling/RollingAppenderCronOnceADayTest.java | 9 +- .../appender/rolling/RollingAppenderCronTest.java | 5 +- .../rolling/RollingAppenderDeleteScriptTest.java | 3 +- .../RollingAppenderDirectWrite1906Test.java | 9 +- .../RollingAppenderDirectWriteStartupSizeTest.java | 2 +- ...erDirectWriteTempCompressedFilePatternTest.java | 4 +- .../rolling/RollingAppenderDirectWriteTest.java | 9 +- ...RollingAppenderDirectWriteWithFilenameTest.java | 4 +- ...llingAppenderDirectWriteWithHtmlLayoutTest.java | 2 +- ...lingAppenderDirectWriteWithReconfigureTest.java | 4 +- .../RollingAppenderNoUnconditionalDeleteTest.java | 2 +- .../rolling/RollingAppenderOnStartup2Test.java | 29 +- .../RollingAppenderOnStartupDirectTest.java | 32 +- .../rolling/RollingAppenderOnStartupTest.java | 20 +- .../rolling/RollingAppenderReconfigureTest.java | 4 +- ...RollingAppenderSizeCompressPermissionsTest.java | 2 +- .../rolling/RollingAppenderSizeMaxWidthTest.java | 4 +- .../rolling/RollingAppenderSizeNoCompressTest.java | 4 +- .../appender/rolling/RollingAppenderSizeTest.java | 6 +- .../rolling/RollingAppenderSizeWithTimeTest.java | 2 +- ...llingAppenderTempCompressedFilePatternTest.java | 4 +- .../RollingAppenderTimeAndSizeDirectTest.java | 4 +- .../rolling/RollingAppenderTimeAndSizeTest.java | 4 +- .../rolling/RollingAppenderUncompressedTest.java | 2 +- .../rolling/RollingDirectSize3490Test.java | 6 +- .../rolling/RollingFileAppenderAccessTest.java | 19 +- .../rolling/RollingFileAppenderBuilderTest.java | 11 +- .../RollingFileAppenderInterruptedThreadTest.java | 9 +- .../rolling/RollingFileAppenderLayoutTest.java | 11 +- .../rolling/RollingFileAppenderUpdateDataTest.java | 29 +- .../appender/rolling/RollingFileManagerTest.java | 70 +- .../appender/rolling/RollingNewDirectoryTest.java | 2 +- .../RollingRandomAccessFileManagerTest.java | 28 +- ...omAppenderDirectWriteAndSwitchDirectorTest.java | 4 +- .../RollingRandomAppenderDirectWriteTest.java | 4 +- ...gRandomAppenderDirectWriteWithFilenameTest.java | 4 +- .../appender/rolling/RolloverFilePatternTest.java | 20 +- .../appender/rolling/RolloverWithPaddingTest.java | 6 +- .../rolling/action/AbstractActionTest.java | 5 +- .../rolling/action/Bzip2CompressActionTest.java | 10 +- .../appender/rolling/action/DeleteActionTest.java | 18 +- .../rolling/action/DeletingVisitorTest.java | 20 +- .../core/appender/rolling/action/DurationTest.java | 28 +- .../rolling/action/FileRenameActionTest.java | 12 +- .../core/appender/rolling/action/FileSizeTest.java | 6 +- .../rolling/action/IfAccumulatedFileCountTest.java | 10 +- .../rolling/action/IfAccumulatedFileSizeTest.java | 16 +- .../core/appender/rolling/action/IfAnyTest.java | 10 +- .../appender/rolling/action/IfFileNameTest.java | 20 +- .../rolling/action/IfLastModifiedTest.java | 14 +- .../core/appender/rolling/action/IfNotTest.java | 10 +- .../appender/rolling/action/PathConditionTest.java | 10 +- .../action/PathSortByModificationTimeTest.java | 8 +- .../rolling/action/ScriptConditionTest.java | 16 +- .../rolling/action/SortingVisitorTest.java | 12 +- .../appender/routing/JsonRoutingAppender2Test.java | 3 +- .../appender/routing/JsonRoutingAppenderTest.java | 3 +- .../routing/PropertiesRoutingAppenderTest.java | 7 +- .../appender/routing/RoutingAppender2767Test.java | 4 +- .../appender/routing/RoutingAppender3350Test.java | 2 +- .../RoutingAppenderKeyLookupEvaluationTest.java | 4 +- .../core/appender/routing/RoutingAppenderTest.java | 7 +- .../routing/RoutingAppenderWithJndiTest.java | 28 +- .../routing/RoutingAppenderWithPurgingTest.java | 6 +- .../routing/RoutingDefaultAppenderTest.java | 3 +- .../async/AsyncAppenderExceptionHandlingTest.java | 13 +- .../async/AsyncLoggerArgumentFreedOnErrorTest.java | 85 +-- .../async/AsyncLoggerClassLoadDeadlockTest.java | 25 +- .../core/async/AsyncLoggerConfigAutoFlushTest.java | 28 +- .../core/async/AsyncLoggerConfigErrorOnFormat.java | 34 +- .../log4j/core/async/AsyncLoggerConfigTest.java | 10 +- .../log4j/core/async/AsyncLoggerConfigTest2.java | 26 +- .../AsyncLoggerConfigUseAfterShutdownTest.java | 18 +- .../AsyncLoggerConfigWithAsyncEnabledTest.java | 30 +- ...AsyncLoggerContextSelectorInitialStateTest.java | 14 +- .../core/async/AsyncLoggerContextSelectorTest.java | 31 +- .../log4j/core/async/AsyncLoggerContextTest.java | 6 +- .../AsyncLoggerCustomSelectorLocationTest.java | 24 +- .../core/async/AsyncLoggerDefaultLocationTest.java | 36 +- .../AsyncLoggerEventTranslationExceptionTest.java | 10 +- .../log4j/core/async/AsyncLoggerLocationTest.java | 34 +- .../log4j/core/async/AsyncLoggerNanoTimeTest.java | 41 +- .../logging/log4j/core/async/AsyncLoggerTest.java | 38 +- .../async/AsyncLoggerTestCachedThreadName.java | 36 +- .../async/AsyncLoggerTestUncachedThreadName.java | 36 +- .../core/async/AsyncLoggerThreadContextTest.java | 6 +- .../async/AsyncLoggerThreadNameStrategyTest.java | 38 +- .../async/AsyncLoggerTimestampMessageTest.java | 32 +- .../async/AsyncLoggerUseAfterShutdownTest.java | 24 +- .../async/AsyncLoggersWithAsyncAppenderTest.java | 4 +- .../AsyncLoggersWithAsyncLoggerConfigTest.java | 8 +- .../async/AsyncQueueFullPolicyFactoryTest.java | 36 +- .../async/AsyncRootLoggerDefaultLocationTest.java | 36 +- ...WaitStrategyFactoryConfigGlobalLoggersTest.java | 28 +- .../async/AsyncWaitStrategyFactoryConfigTest.java | 89 ++- ...egyFactoryIncorrectConfigGlobalLoggersTest.java | 26 +- .../async/BasicAsyncLoggerContextSelectorTest.java | 50 +- .../logging/log4j/core/async/BlockingAppender.java | 3 +- .../async/DefaultAsyncQueueFullPolicyTest.java | 16 +- .../async/DiscardingAsyncQueueFullPolicyTest.java | 70 +- .../log4j/core/async/Log4j2Jira1688AsyncTest.java | 2 +- .../log4j/core/async/Log4j2Jira1688Test.java | 2 +- .../core/async/QueueFullAsyncLogger3Test.java | 75 +- .../log4j/core/async/RingBufferLogEventTest.java | 48 +- .../logging/log4j/core/config/AdvertiserTest.java | 12 +- .../core/config/AppenderControlArraySetTest.java | 26 +- .../config/CompositeConfigurationMissingTest.java | 6 +- .../core/config/CompositeConfigurationTest.java | 16 +- .../core/config/ConfigurationFactoryTest.java | 5 +- .../core/config/ConfigurationPropertyTest.java | 6 +- .../log4j/core/config/ConfigurationSourceTest.java | 2 +- .../log4j/core/config/Configurator1Test.java | 50 +- .../log4j/core/config/Configurator2Test.java | 12 +- .../log4j/core/config/ConfiguratorErrorTest.java | 6 +- .../core/config/ConfiguratorSetLevelTest.java | 4 +- .../log4j/core/config/CustomConfigurationTest.java | 25 +- .../logging/log4j/core/config/FileOutputTest.java | 5 +- .../log4j/core/config/JiraLog4j2_2134Test.java | 12 +- .../logging/log4j/core/config/Log4j_3431_Test.java | 89 +++ .../log4j/core/config/LoggerConfigTest.java | 46 +- .../log4j/core/config/LoggersPluginTest.java | 4 +- .../log4j/core/config/MissingLanguageTest.java | 6 +- .../log4j/core/config/MissingRootLoggerTest.java | 4 +- .../log4j/core/config/NestedLoggerConfigTest.java | 29 +- .../logging/log4j/core/config/NoLanguagesTest.java | 6 +- .../log4j/core/config/PropertiesPluginTest.java | 6 +- .../logging/log4j/core/config/PropertyTest.java | 12 +- .../core/config/ReconfigurationDeadlockTest.java | 18 +- .../core/config/ReconfigurationFailureTest.java | 15 +- .../core/config/arbiters/BasicArbiterTest.java | 16 +- .../config/arbiters/EnvironmentArbiterTest.java | 12 +- .../core/config/arbiters/ScriptArbiterTest.java | 16 +- .../core/config/arbiters/SelectArbiterTest.java | 14 +- .../config/arbiters/SystemPropertyArbiterTest.java | 16 +- .../config/builder/ConfigurationAssemblerTest.java | 12 +- .../config/builder/ConfigurationBuilderTest.java | 4 +- .../plugins/convert/DateTypeConverterTest.java | 26 +- .../plugins/convert/TypeConverterRegistryTest.java | 30 +- .../config/plugins/convert/TypeConvertersTest.java | 29 +- .../config/plugins/processor/FakeAnnotations.java | 83 +++ .../core/config/plugins/processor/FakePlugin.java | 59 ++ .../processor/FakePluginPublicSetter.java.source | 89 +++ .../plugins/processor/GraalVmProcessorTest.java | 145 ++++ .../config/plugins/processor/PluginCacheTest.java | 25 +- .../processor/PluginProcessorPublicSetterTest.java | 110 +++ .../plugins/processor/PluginProcessorTest.java | 37 +- .../util/ResolverUtilCustomProtocolTest.java | 28 +- .../core/config/plugins/util/ResolverUtilTest.java | 18 +- .../validators/RequiredValidatorTest.java | 8 +- .../validators/ValidHostValidatorTest.java | 10 +- .../validators/ValidPortValidatorTest.java | 10 +- .../ValidatingPluginWithFailoverTest.java | 6 +- .../ValidatingPluginWithGenericBuilderTest.java | 8 +- ...ngPluginWithGenericSubclassFoo1BuilderTest.java | 8 +- .../ValidatingPluginWithTypedBuilderTest.java | 8 +- .../properties/PropertiesConfigurationTest.java | 24 +- .../core/config/xml/XmlConfigurationSecurity.java | 5 +- .../log4j/core/config/xml/XmlLoggerPropsTest.java | 4 +- ...GarbageFreeSortedArrayThreadContextMapTest.java | 2 +- .../log4j/core/filter/AbstractFilterTest.java | 4 +- .../log4j/core/filter/AbstractFilterableTest.java | 70 +- .../core/filter/AbstractScriptFilterTest.java | 9 +- .../log4j/core/filter/BurstFilterLogDelayTest.java | 4 +- .../logging/log4j/core/filter/BurstFilterTest.java | 4 +- .../log4j/core/filter/CompositeFilterTest.java | 10 +- .../core/filter/DynamicThresholdFilterTest.java | 15 +- .../logging/log4j/core/filter/MapFilterTest.java | 9 +- .../log4j/core/filter/MarkerFilterTest.java | 10 +- .../log4j/core/filter/NoMarkerFilterTest.java | 8 +- .../logging/log4j/core/filter/RegexFilterTest.java | 34 +- .../log4j/core/filter/StringMatchFilterTest.java | 88 +++ .../core/filter/StructuredDataFilterTest.java | 9 +- .../core/filter/ThreadContextMapFilterTest.java | 20 +- .../log4j/core/filter/ThresholdFilterTest.java | 8 +- .../logging/log4j/core/filter/TimeFilterTest.java | 113 +-- ...taFactoryPropertySetMissingConstructorTest.java | 8 +- .../impl/ContextDataFactoryPropertySetTest.java | 14 +- .../log4j/core/impl/ContextDataFactoryTest.java | 14 +- .../log4j/core/impl/FactoryTestStringMap.java | 23 + .../FactoryTestStringMapWithoutIntConstructor.java | 23 + .../core/impl/JdkMapAdapterStringMapTest.java | 113 +-- .../log4j/core/impl/Log4jLogEventNanoTimeTest.java | 13 +- .../logging/log4j/core/impl/Log4jLogEventTest.java | 35 +- .../log4j/core/impl/MutableLogEventTest.java | 20 +- .../NestedLoggingFromThrowableMessageTest.java | 5 +- .../core/impl/ReusableLogEventFactoryTest.java | 12 +- .../core/impl/ThreadContextDataInjectorTest.java | 4 +- .../core/impl/ThrowableFormatOptionsTest.java | 134 ++-- .../log4j/core/impl/ThrowableProxyHelperTest.java | 79 -- .../core/impl/ThrowableProxyRendererTest.java | 38 - .../log4j/core/impl/ThrowableProxyTest.java | 462 ------------ .../core/jackson/JacksonIssue429MyNamesTest.java | 28 +- .../log4j/core/jackson/JacksonIssue429Test.java | 28 +- .../log4j/core/jackson/LevelMixInXmlTest.java | 2 +- .../core/jackson/StackTraceElementMixInTest.java | 28 +- .../apache/logging/log4j/core/jmx/ServerTest.java | 22 +- .../core/layout/AbstractStringLayoutTest.java | 6 +- .../ConcurrentLoggingWithGelfLayoutTest.java | 4 +- .../ConcurrentLoggingWithJsonLayoutTest.java | 2 +- .../log4j/core/layout/CsvLogEventLayoutTest.java | 10 +- .../layout/CsvParameterLayoutAllAsyncTest.java | 27 +- .../log4j/core/layout/CsvParameterLayoutTest.java | 4 +- .../logging/log4j/core/layout/GelfLayout2Test.java | 4 +- .../logging/log4j/core/layout/GelfLayout3Test.java | 6 +- .../core/layout/GelfLayoutPatternSelectorTest.java | 4 +- .../logging/log4j/core/layout/GelfLayoutTest.java | 30 +- .../logging/log4j/core/layout/HtmlLayoutTest.java | 46 +- .../log4j/core/layout/JsonLayoutMillisTest.java | 2 +- .../logging/log4j/core/layout/JsonLayoutTest.java | 124 ++-- .../log4j/core/layout/Log4j2_2195_Test.java | 4 +- .../log4j/core/layout/LogEventFixtures.java | 12 +- .../PatternLayoutDefaultExceptionHandlerTest.java | 75 ++ .../core/layout/PatternLayoutLookupDateTest.java | 4 +- .../layout/PatternLayoutMainMapLookupTest.java | 6 +- .../core/layout/PatternLayoutNoLookupDateTest.java | 9 +- .../log4j/core/layout/PatternLayoutTest.java | 55 +- .../log4j/core/layout/PatternSelectorTest.java | 6 +- .../log4j/core/layout/Rfc5424LayoutTest.java | 40 +- .../log4j/core/layout/SerializedLayoutTest.java | 2 +- .../core/layout/StringBuilderEncoderTest.java | 37 +- .../log4j/core/layout/SyslogLayoutTest.java | 8 +- .../logging/log4j/core/layout/XmlLayoutTest.java | 23 +- .../logging/log4j/core/layout/YamlLayoutTest.java | 84 +-- .../logging/log4j/core/lookup/CaseLookupTest.java | 4 +- .../log4j/core/lookup/ContextMapLookupTest.java | 2 +- .../logging/log4j/core/lookup/DateLookupTest.java | 8 +- .../log4j/core/lookup/EnvironmentLookupTest.java | 4 +- .../logging/log4j/core/lookup/EventLookupTest.java | 14 +- .../log4j/core/lookup/InterpolatorTest.java | 2 +- .../log4j/core/lookup/JndiDisabledLookupTest.java | 6 +- .../logging/log4j/core/lookup/JndiExploit.java | 3 +- .../logging/log4j/core/lookup/JndiLookupTest.java | 2 +- .../core/lookup/JndiRestrictedLookupTest.java | 5 +- .../logging/log4j/core/lookup/Log4jLookupTest.java | 10 +- .../core/lookup/Log4jLookupWithSpacesTest.java | 10 +- .../logging/log4j/core/lookup/MainLookupTest.java | 4 +- .../logging/log4j/core/lookup/MapLookupTest.java | 18 +- .../log4j/core/lookup/MarkerLookupConfigTest.java | 4 +- .../log4j/core/lookup/MarkerLookupTest.java | 14 +- .../log4j/core/lookup/PropertiesLookupTest.java | 16 +- .../core/lookup/ResourceBundleLookupTest.java | 11 +- .../log4j/core/lookup/StrSubstitutorTest.java | 56 +- .../core/lookup/StructuredDataLookupTest.java | 8 +- .../core/lookup/SystemPropertiesLookupTest.java | 8 +- .../message/ExtendedThreadInformationTest.java | 49 +- .../logging/log4j/core/net/JndiManagerTest.java | 14 +- .../logging/log4j/core/net/PriorityTest.java | 4 +- .../logging/log4j/core/net/SmtpManagerTest.java | 24 +- .../log4j/core/net/UrlConnectionFactoryTest.java | 2 +- .../net/ssl/EnvironmentPasswordProviderTest.java | 6 +- .../core/net/ssl/FilePasswordProviderTest.java | 8 +- .../core/net/ssl/KeyStoreConfigurationTest.java | 18 +- .../core/net/ssl/MemoryPasswordProviderTest.java | 8 +- .../core/net/ssl/SslConfigurationFactoryTest.java | 9 +- .../log4j/core/net/ssl/StoreConfigurationTest.java | 8 +- .../core/net/ssl/TrustStoreConfigurationTest.java | 21 +- .../log4j/core/parser/JsonLogEventParserTest.java | 46 +- .../log4j/core/parser/LogEventParserTest.java | 6 +- .../log4j/core/parser/XmlLogEventParserTest.java | 44 +- .../log4j/core/parser/YamlLogEventParserTest.java | 42 +- .../log4j/core/pattern/CallerInformationTest.java | 6 +- .../core/pattern/DatePatternConverterTestBase.java | 256 ++----- .../log4j/core/pattern/DisableAnsiTest.java | 6 +- .../core/pattern/DynamicWordAbbreviatorTest.java | 7 +- .../core/pattern/EncodingPatternConverterTest.java | 12 +- .../pattern/EndOfBatchPatternConverterTest.java | 6 +- .../EqualsIgnoreCaseReplacementConverterTest.java | 8 +- .../pattern/EqualsReplacementConverterTest.java | 18 +- .../ExtendedThrowablePatternConverterTest.java | 298 ++++---- .../log4j/core/pattern/ExtendedThrowableTest.java | 52 -- .../log4j/core/pattern/FormattingInfoTest.java | 8 +- .../log4j/core/pattern/HighlightConverterTest.java | 22 +- .../log4j/core/pattern/JAnsiTextRendererTest.java | 58 ++ .../core/pattern/LevelPatternConverterTest.java | 18 +- .../core/pattern/LiteralPatternConverterTest.java | 6 +- ...cationPatternConvertersRequireLocationTest.java | 3 +- .../pattern/LoggerFqcnPatternConverterTest.java | 4 +- .../core/pattern/MapPatternConverterTest.java | 8 +- .../core/pattern/MarkerPatternConverterTest.java | 4 +- .../MarkerSimpleNamePatternConverterTest.java | 4 +- .../log4j/core/pattern/MaxLengthConverterTest.java | 8 +- .../core/pattern/MdcPatternConverterTest.java | 22 +- ...rterTest.java => MessageAnsiConverterTest.java} | 8 +- .../core/pattern/MessagePatternConverterTest.java | 22 +- .../core/pattern/MessageStyledConverterTest.java | 8 +- .../log4j/core/pattern/NameAbbreviatorTest.java | 40 +- .../core/pattern/NanoTimePatternConverterTest.java | 4 +- .../core/pattern/NdcPatternConverterTest.java | 10 +- .../log4j/core/pattern/NoConsoleNoAnsiTest.java | 6 +- .../log4j/core/pattern/PatternParserTest.java | 81 +- .../pattern/ProcessIdPatternConverterTest.java | 4 +- .../pattern/RegexReplacementConverterTest.java | 4 +- .../log4j/core/pattern/RegexReplacementTest.java | 8 +- .../core/pattern/RepeatPatternConverterTest.java | 4 +- .../pattern/RootThrowablePatternConverterTest.java | 284 ++++--- .../log4j/core/pattern/RootThrowableTest.java | 46 -- .../SequenceNumberPatternConverterTest.java | 4 +- ...quenceNumberPatternConverterZeroPaddedTest.java | 4 +- .../pattern/SimpleLiteralPatternConverterTest.java | 6 +- .../log4j/core/pattern/StyleConverterTest.java | 14 +- .../core/pattern/ThreadIdPatternConverterTest.java | 4 +- .../pattern/ThreadNamePatternConverterTest.java | 4 +- .../ThreadPriorityPatternConverterTest.java | 4 +- .../pattern/ThrowablePatternConverterTest.java | 592 ++++++++++----- .../logging/log4j/core/pattern/ThrowableTest.java | 56 -- .../VariablesNotEmptyReplacementConverterTest.java | 14 +- .../core/selector/BasicContextSelectorTest.java | 24 +- .../selector/ClassLoaderContextSelectorTest.java | 6 +- .../logging/log4j/core/test/LogBuilderTest.java | 4 +- .../log4j/core/tools/GenerateCustomLoggerTest.java | 6 +- .../core/tools/GenerateExtendedLoggerTest.java | 6 +- .../logging/log4j/core/util/ClockFactoryTest.java | 18 +- .../log4j/core/util/ContextDataProviderTest.java | 6 +- .../log4j/core/util/CronExpressionTest.java | 28 +- .../logging/log4j/core/util/CyclicBufferTest.java | 10 +- .../log4j/core/util/DummyNanoClockTest.java | 6 +- .../logging/log4j/core/util/FileUtilsTest.java | 20 +- .../apache/logging/log4j/core/util/InitTest.java | 6 +- .../logging/log4j/core/util/IntegersTest.java | 6 +- .../logging/log4j/core/util/JsonUtilsTest.java | 8 +- .../apache/logging/log4j/core/util/LoaderTest.java | 6 +- .../logging/log4j/core/util/NetUtilsTest.java | 12 +- .../log4j/core/util/OptionConverterTest.java | 10 +- .../core/util/ShutdownCallbackRegistryTest.java | 8 +- .../apache/logging/log4j/core/util/SourceTest.java | 46 +- .../logging/log4j/core/util/SystemClockTest.java | 6 +- .../log4j/core/util/SystemNanoClockTest.java | 4 +- .../logging/log4j/core/util/ThrowablesTest.java | 19 +- .../apache/logging/log4j/core/util/UuidTest.java | 8 +- .../core/util/datetime/FixedDateFormatTest.java | 54 +- .../util/internal/InternalLoggerRegistryTest.java | 153 ++++ .../instant/InstantNumberFormatterTest.java | 70 ++ .../InstantPatternDynamicFormatterTest.java | 458 ++++++++++++ ...stantPatternThreadLocalCachedFormatterTest.java | 292 ++++++++ .../MutableLogEventWithReusableParamMsgTest.java | 4 +- .../AsyncWaitStrategyFactoryConfigTest.properties | 12 +- .../src/test/resources/bad/log4j-loggers.xml | 2 +- .../resources/config/MonitorResource/log4j.json | 15 + .../config/MonitorResource/log4j.properties | 17 +- .../MonitorResource/log4j.xml} | 27 +- .../resources/config/MonitorResource/log4j.yaml | 17 +- ...sole-msg-ansi.xml => log4j-asynch-location.xml} | 15 +- ...wablefilter.xml => log4j-failover-location.xml} | 37 +- .../resources/log4j-rolling-size-with-time.xml | 2 +- .../log4j2-asyncwaitfactoryconfig-3159-nok.xml | 10 +- .../log4j2-stringmatchfilter-3153-nok.xml | 12 +- .../resources/log4j2-stringmatchfilter-3153-ok.xml | 10 +- log4j-core/pom.xml | 11 +- .../org/apache/logging/log4j/core/LogEvent.java | 3 + .../java/org/apache/logging/log4j/core/Logger.java | 75 +- .../apache/logging/log4j/core/LoggerContext.java | 75 +- .../logging/log4j/core/appender/AsyncAppender.java | 19 + .../log4j/core/appender/ConsoleAppender.java | 151 ++-- .../log4j/core/appender/FailoverAppender.java | 17 + .../logging/log4j/core/appender/HttpAppender.java | 24 +- .../log4j/core/appender/db/jdbc/JdbcAppender.java | 2 + .../core/appender/db/jdbc/JdbcDatabaseManager.java | 9 +- .../log4j/core/appender/mom/JmsAppender.java | 11 +- .../log4j/core/appender/mom/JmsManager.java | 6 +- .../core/appender/mom/jeromq/JeroMqAppender.java | 22 +- .../log4j/core/appender/mom/package-info.java | 2 +- .../core/appender/rolling/RollingFileManager.java | 22 +- .../logging/log4j/core/async/AsyncLogger.java | 34 +- .../log4j/core/async/AsyncLoggerConfig.java | 35 +- .../core/async/AsyncLoggerConfigDisruptor.java | 6 +- .../core/async/AsyncWaitStrategyFactoryConfig.java | 10 +- .../log4j/core/async/RingBufferLogEvent.java | 40 +- .../core/async/RingBufferLogEventTranslator.java | 16 +- .../logging/log4j/core/async/package-info.java | 2 +- .../log4j/core/config/AbstractConfiguration.java | 47 +- .../logging/log4j/core/config/DefaultLayout.java | 88 +++ .../logging/log4j/core/config/LoggerConfig.java | 34 +- .../logging/log4j/core/config/MonitorResource.java | 95 +++ .../log4j/core/config/MonitorResources.java | 54 ++ .../config/builder/api/ConfigurationBuilder.java | 10 + .../core/config/builder/api/package-info.java | 2 +- .../config/builder/impl/BuiltConfiguration.java | 17 + .../builder/impl/DefaultConfigurationBuilder.java | 22 +- .../core/config/builder/impl/package-info.java | 2 +- .../logging/log4j/core/config/package-info.java | 2 +- .../config/plugins/convert/TypeConverters.java | 9 +- .../config/plugins/processor/GraalVmProcessor.java | 312 ++++++++ .../config/plugins/processor/PluginProcessor.java | 144 +++- .../plugins/processor/internal/Annotations.java | 147 ++++ .../processor/internal/ReachabilityMetadata.java | 290 ++++++++ .../config/plugins/processor/package-info.java | 2 +- .../properties/PropertiesConfigurationBuilder.java | 26 +- .../log4j/core/config/xml/XmlConfiguration.java | 12 +- .../log4j/core/filter/AbstractFilterable.java | 3 +- .../logging/log4j/core/filter/CompositeFilter.java | 6 +- .../core/filter/MutableThreadContextMapFilter.java | 6 +- .../logging/log4j/core/filter/RegexFilter.java | 3 +- .../log4j/core/filter/StringMatchFilter.java | 30 +- .../logging/log4j/core/filter/ThresholdFilter.java | 13 +- .../logging/log4j/core/filter/package-info.java | 2 +- .../logging/log4j/core/impl/ExtendedClassInfo.java | 1 + .../log4j/core/impl/ExtendedStackTraceElement.java | 1 + .../log4j/core/impl/JdkMapAdapterStringMap.java | 14 +- .../log4j/core/impl/Log4jContextFactory.java | 9 +- .../logging/log4j/core/impl/Log4jLogEvent.java | 228 +++--- .../logging/log4j/core/impl/Log4jProvider.java | 2 +- .../logging/log4j/core/impl/MutableLogEvent.java | 54 +- .../log4j/core/impl/ReusableLogEventFactory.java | 25 +- .../log4j/core/impl/ThrowableFormatOptions.java | 24 +- .../logging/log4j/core/impl/ThrowableProxy.java | 1 + .../log4j/core/impl/ThrowableProxyHelper.java | 1 + .../log4j/core/impl/ThrowableProxyRenderer.java | 1 + .../logging/log4j/core/impl/package-info.java | 2 +- .../jackson/ExtendedStackTraceElementMixIn.java | 1 + .../logging/log4j/core/jackson/JsonConstants.java | 3 - .../log4j/core/jackson/ThrowableProxyMixIn.java | 1 + .../ThrowableProxyWithStacktraceAsStringMixIn.java | 1 + .../ThrowableProxyWithoutStacktraceMixIn.java | 1 + .../logging/log4j/core/jackson/package-info.java | 2 +- .../log4j/core/layout/AbstractJacksonLayout.java | 5 +- .../log4j/core/layout/CsvLogEventLayout.java | 2 +- .../logging/log4j/core/layout/GelfLayout.java | 24 + .../logging/log4j/core/layout/PatternLayout.java | 15 +- .../logging/log4j/core/layout/Rfc5424Layout.java | 8 + .../logging/log4j/core/layout/package-info.java | 2 +- .../core/lookup/ConfigurationStrSubstitutor.java | 2 +- .../lookup/JmxRuntimeInputArgumentsLookup.java | 27 +- .../logging/log4j/core/lookup/MainMapLookup.java | 4 + .../logging/log4j/core/lookup/package-info.java | 2 +- .../core/message/ExtendedThreadInformation.java | 29 +- .../core/net/SocketPerformancePreferences.java | 3 + .../apache/logging/log4j/core/osgi/Activator.java | 2 +- .../logging/log4j/core/pattern/AnsiEscape.java | 7 +- .../log4j/core/pattern/ClassResourceInfo.java | 95 +++ .../log4j/core/pattern/DatePatternConverter.java | 490 ++++++------ .../pattern/ExtendedThrowablePatternConverter.java | 70 +- .../log4j/core/pattern/JAnsiTextRenderer.java | 423 +++++------ .../core/pattern/MessagePatternConverter.java | 9 +- .../logging/log4j/core/pattern/PatternParser.java | 2 +- .../log4j/core/pattern/RegexReplacement.java | 3 +- .../pattern/RootThrowablePatternConverter.java | 77 +- .../ThrowableExtendedStackTraceRenderer.java | 206 +++++ ...ThrowableExtendedStackTraceRendererFactory.java | 20 +- .../ThrowableInvertedPropertyRendererFactory.java | 29 +- .../ThrowableInvertedStackTraceRenderer.java | 131 ++++ ...ThrowableInvertedStackTraceRendererFactory.java | 20 +- .../core/pattern/ThrowablePatternConverter.java | 330 ++++---- .../pattern/ThrowablePropertyRendererFactory.java | 120 +++ .../log4j/core/pattern/ThrowableRenderer.java | 13 +- .../core/pattern/ThrowableStackTraceRenderer.java | 343 +++++++++ .../ThrowableStackTraceRendererFactory.java | 21 +- .../logging/log4j/core/pattern/package-info.java | 2 +- .../org/apache/logging/log4j/core/util/Loader.java | 4 + .../logging/log4j/core/util/SystemClock.java | 12 +- .../apache/logging/log4j/core/util/Throwables.java | 37 +- .../log4j/core/util/datetime/DatePrinter.java | 2 + .../log4j/core/util/datetime/FastDateFormat.java | 2 + .../log4j/core/util/datetime/FastDatePrinter.java | 2 + .../log4j/core/util/datetime/FixedDateFormat.java | 7 +- .../logging/log4j/core/util/datetime/Format.java | 3 + .../log4j/core/util/datetime/FormatCache.java | 2 + .../log4j/core/util/datetime/package-info.java | 10 +- .../core/util/internal/InternalLoggerRegistry.java | 154 ++-- .../log4j/core/util/internal/SystemUtils.java | 28 +- .../util/internal/instant/InstantFormatter.java | 30 +- .../internal/instant/InstantNumberFormatter.java | 128 ++++ .../instant/InstantPatternDynamicFormatter.java | 826 +++++++++++++++++++++ .../internal/instant/InstantPatternFormatter.java | 186 +++++ .../instant/InstantPatternLegacyFormatter.java | 118 +++ .../InstantPatternThreadLocalCachedFormatter.java | 134 ++++ .../internal/instant}/package-info.java | 19 +- .../logging/log4j/core/util/package-info.java | 2 +- .../log4j-core/resource-config.json | 12 + log4j-fuzz-test/pom.xml | 9 +- .../logging/log4j/io/AbstractStreamTest.java | 2 +- .../org/apache/logging/log4j/io/IoBuilderTest.java | 4 +- .../log4j/io/LoggerPrintStreamCallerInfoTest.java | 28 +- .../logging/log4j/io/LoggerPrintStreamTest.java | 18 +- .../log4j/io/LoggerPrintWriterCallerInfoTest.java | 30 +- .../log4j/io/LoggerPrintWriterJdbcH2Test.java | 6 +- .../logging/log4j/io/LoggerPrintWriterTest.java | 18 +- .../.log4j-plugin-processing-activator | 1 + {log4j-jakarta-smtp => log4j-jakarta-jms}/pom.xml | 60 +- .../core/appender/mom/jakarta}/JmsAppender.java | 60 +- .../core/appender/mom/jakarta}/JmsManager.java | 51 +- .../core/appender/mom/jakarta}/package-info.java | 7 +- .../appender/mom/jakarta}/JmsAppenderTest.java | 20 +- .../src/test/resources/JmsJakartaAppenderTest.xml | 35 +- log4j-jakarta-smtp/pom.xml | 6 - .../logging/log4j/smtp/SmtpAppenderAsyncTest.java | 53 +- .../logging/log4j/smtp/SmtpAppenderTest.java | 36 +- .../apache/logging/log4j/smtp/SmtpManagerTest.java | 24 +- .../log4j/web/appender/ServletAppender.java | 1 + .../web/Log4jServletContainerInitializerTest.java | 22 +- .../log4j/web/Log4jServletContextListenerTest.java | 12 +- .../logging/log4j/web/Log4jServletFilterTest.java | 12 +- ...og4jShutdownOnContextDestroyedListenerTest.java | 10 +- .../log4j/web/Log4jWebInitializerImplTest.java | 40 +- .../org/apache/logging/log4j/web/PropertyTest.java | 6 +- .../apache/logging/log4j/web/TestAsyncServlet.java | 8 +- .../logging/log4j/jcl/CallerInformationTest.java | 6 +- .../db/jdbc/PoolableConnectionFactoryTest.java | 4 +- .../db/jdbc/PoolingDriverConnectionSourceTest.java | 15 +- log4j-jpa/pom.xml | 5 - .../appender/db/jpa/AbstractJpaAppenderTest.java | 120 +-- .../core/appender/db/jpa/JpaH2AppenderTest.java | 7 +- .../appender/db/jpa/JpaHsqldbAppenderTest.java | 35 +- .../core/appender/db/jpa/LogEventEntityTest.java | 15 +- .../ContextDataAttributeConverterTest.java | 38 +- .../ContextDataJsonAttributeConverterTest.java | 47 +- .../ContextMapAttributeConverterTest.java | 38 +- .../ContextMapJsonAttributeConverterTest.java | 47 +- .../ContextStackAttributeConverterTest.java | 42 +- .../ContextStackJsonAttributeConverterTest.java | 56 +- .../converter/InstantAttributeConverterTest.java | 43 +- .../converter/MarkerAttributeConverterTest.java | 65 +- .../converter/MessageAttributeConverterTest.java | 41 +- .../StackTraceElementAttributeConverterTest.java | 119 ++- .../converter/ThrowableAttributeConverterTest.java | 51 +- .../logging/log4j/jpl/Log4jSystemLoggerTest.java | 24 +- log4j-jul/pom.xml | 72 +- .../org/apache/logging/log4j/jul/ApiLogger.java | 64 +- .../logging/log4j/jul/test/AbstractLoggerTest.java | 143 +++- .../logging/log4j/jul/test/ApiLoggerTest.java | 47 +- .../log4j/jul/test/AsyncLoggerThreadsTest.java | 28 +- .../test/BracketInNotInterpolatedMessageTest.java | 22 +- .../log4j/jul/test/CallerInformationTest.java | 40 +- .../logging/log4j/jul/test/CoreLoggerTest.java | 55 +- .../DefaultLevelConverterCustomJulLevelsTest.java | 75 +- .../log4j/jul/test/DefaultLevelConverterTest.java | 11 +- .../log4j/jul/test/JavaLevelTranslatorTest.java | 29 +- .../log4j/jul/test/Log4jBridgeHandlerTest.java | 60 +- .../log4j/jul/test/Log4jLevelTranslatorTest.java | 24 +- .../test/resources/testResourceBundle.properties | 13 +- log4j-layout-template-json-fuzz-test/pom.xml | 2 +- .../json/fuzz/JsonTemplateLayoutCodecFuzzer.java | 2 +- log4j-layout-template-json-test/pom.xml | 2 +- .../layout/template/json/LogEventFixture.java | 27 +- .../log4j/layout/template/json/package-info.java | 22 - .../log4j/layout/template/json/GcpLayoutTest.java | 44 +- .../log4j/layout/template/json/GelfLayoutTest.java | 22 +- .../JsonTemplateLayoutNullEventDelimiterTest.java | 4 +- .../log4j/layout/template/json/LogstashIT.java | 6 +- .../json/ThreadLocalRecyclerNestedLoggingTest.java | 4 +- .../json/resolver/MessageResolverTest.java | 2 + .../resolver/ReadOnlyStringMapResolverTest.java | 6 +- .../template/json/util/InstantFormatterTest.java | 114 --- .../layout/template/json/util/JsonReaderTest.java | 2 +- .../json/util/RecyclerFactoryConverterTest.java | 16 +- .../json/util/RecyclerFactoryCustomConverter.java | 63 ++ .../template/json/JsonTemplateLayoutDefaults.java | 38 +- .../template/json/resolver/ExceptionResolver.java | 4 - .../json/resolver/ExceptionResolverFactory.java | 2 +- .../json/resolver/ExceptionRootCauseResolver.java | 4 - .../ExceptionRootCauseResolverFactory.java | 2 +- .../json/resolver/StackTraceStringResolver.java | 6 +- .../template/json/resolver/TimestampResolver.java | 269 ++----- .../template/json/util/InstantFormatter.java | 3 + .../template/json/util/RecyclerFactories.java | 4 + .../src/main/resources/GcpLayout.json | 38 +- .../resource-config.json | 9 + log4j-mongodb/pom.xml | 4 +- .../logging/log4j/mongodb/MongoDbProvider.java | 43 +- .../apache/logging/log4j/mongodb/package-info.java | 2 +- .../log4j/mongodb/AbstractMongoDbCappedIT.java | 12 +- .../log4j/mongodb/MongoDbAuthFailureIT.java | 1 - .../log4j/mongodb/MongoDbCollectionNameIT.java | 19 +- .../MongoDbDatabaseAndCollectionNameIT.java | 19 +- .../logging/log4j/mongodb/MongoDbMapMessageIT.java | 14 +- .../MongoDbNoDatabaseAndCollectionNameIT.java | 20 +- .../logging/log4j/mongodb/MongoDbResolver.java | 4 +- .../src/test/resources/MongoDbCollectionNameIT.xml | 14 +- .../MongoDbDatabaseAndCollectionNameIT.xml | 16 +- .../MongoDbNoDatabaseAndCollectionNameIT.xml | 30 +- log4j-mongodb4/pom.xml | 19 +- .../logging/log4j/mongodb4/MongoDb4Connection.java | 30 +- .../logging/log4j/mongodb4/MongoDb4Provider.java | 157 +++- .../logging/log4j/mongodb4/package-info.java | 2 +- .../log4j/mongodb4/AbstractMongoDb4CappedIT.java | 18 +- .../log4j/mongodb4/MongoDb4AuthFailureIT.java | 1 - .../log4j/mongodb4/MongoDb4CollectionNameIT.java | 19 +- .../MongoDb4DatabaseAndCollectionNameIT.java | 19 +- .../log4j/mongodb4/MongoDb4MapMessageIT.java | 14 +- .../log4j/mongodb4/MongoDb4ProviderTest.java | 116 +++ .../logging/log4j/mongodb4/MongoDb4Resolver.java | 6 +- .../test/resources/MongoDb4CollectionNameIT.xml | 29 +- .../MongoDb4DatabaseAndCollectionNameIT.xml | 15 +- log4j-osgi-test/pom.xml | 45 ++ .../log4j/osgi/tests/AbstractLoadBundleTest.java | 44 +- .../logging/log4j/osgi/tests/DisruptorTest.java | 84 +++ .../osgi/tests/{OsgiRule.java => OsgiExt.java} | 17 +- log4j-parent/pom.xml | 161 ++-- log4j-perf-test/README.adoc | 31 +- log4j-perf-test/pom.xml | 17 +- .../logging/log4j/ThrowVsReturnBenchmark.java | 78 ++ .../template/json/JsonTemplateLayoutBenchmark.java | 2 +- .../json/JsonTemplateLayoutBenchmarkReport.java | 2 +- .../log4j/message/ParameterFormatterBenchmark.java | 27 +- ...bstractStringLayoutStringEncodingBenchmark.java | 2 - .../perf/jmh/AnnotationVsMarkerInterface.java | 11 - .../perf/jmh/AsyncAppenderLog4j1Benchmark.java | 11 - .../jmh/AsyncAppenderLog4j1LocationBenchmark.java | 11 - .../perf/jmh/AsyncAppenderLog4j2Benchmark.java | 11 - .../jmh/AsyncAppenderLog4j2LocationBenchmark.java | 11 - .../perf/jmh/AsyncAppenderLogbackBenchmark.java | 11 - .../jmh/AsyncAppenderLogbackLocationBenchmark.java | 12 - .../log4j/perf/jmh/AsyncLoggersBenchmark.java | 11 - .../perf/jmh/AsyncLoggersLocationBenchmark.java | 11 - .../logging/log4j/perf/jmh/ClocksBenchmark.java | 11 - .../log4j/perf/jmh/CollectionsBenchmark.java | 11 - .../perf/jmh/ConfiguratorInitializeBenchmark.java | 2 - .../log4j/perf/jmh/DateTimeFormatBenchmark.java | 117 --- .../log4j/perf/jmh/DebugDisabledBenchmark.java | 2 - .../log4j/perf/jmh/FileAppenderBenchmark.java | 5 - .../perf/jmh/FileAppenderParamsBenchmark.java | 2 - .../perf/jmh/FileAppenderThrowableBenchmark.java | 2 - .../jmh/FileAppenderWithLocationBenchmark.java | 5 - .../log4j/perf/jmh/FormatterLoggerBenchmark.java | 8 - .../log4j/perf/jmh/GelfLayoutBenchmark.java | 2 - .../log4j/perf/jmh/InstantFormatBenchmark.java | 1 + .../log4j/perf/jmh/JdbcAppenderBenchmark.java | 7 - .../log4j/perf/jmh/JpaAppenderBenchmark.java | 7 - .../jmh/Log4j2AppenderComparisonBenchmark.java | 5 - .../log4j/perf/jmh/Log4jLogEventBenchmark.java | 12 - .../perf/jmh/LogBuilderMarkerFilterBenchmark.java | 21 - .../log4j/perf/jmh/LoggerConfigBenchmark.java | 11 - .../log4j/perf/jmh/LoggingDisabledBenchmark.java | 16 - .../logging/log4j/perf/jmh/MDCFilterBenchmark.java | 7 - .../log4j/perf/jmh/MarkerFilterBenchmark.java | 5 - .../log4j/perf/jmh/MemoryHandlerJULBenchmark.java | 11 - .../jmh/MemoryHandlerJULLocationBenchmark.java | 11 - .../perf/jmh/NamePatternConverterBenchmark.java | 13 +- .../logging/log4j/perf/jmh/NanotimeBenchmark.java | 11 - .../logging/log4j/perf/jmh/OutputBenchmark.java | 5 - .../perf/jmh/ParameterizedMessageBenchmark.java | 13 - .../jmh/ParameterizedMessageInliningBenchmark.java | 13 - .../log4j/perf/jmh/PatternLayoutBenchmark.java | 10 - .../perf/jmh/PatternLayoutComparisonBenchmark.java | 8 - .../log4j/perf/jmh/ReflectionBenchmark.java | 15 +- .../logging/log4j/perf/jmh/SimpleBenchmark.java | 7 - .../perf/jmh/SortedArrayVsHashMapBenchmark.java | 11 - .../logging/log4j/perf/jmh/StackWalkBenchmark.java | 11 - .../perf/jmh/StringBuilderEscapeBenchmark.java | 7 - .../log4j/perf/jmh/StringEncodingBenchmark.java | 11 - .../log4j/perf/jmh/TextEncoderHelperBenchmark.java | 11 - .../log4j/perf/jmh/ThreadContextBenchmark.java | 12 - .../log4j/perf/jmh/ThreadContextBenchmark2.java | 10 - .../ThreadLocalVsConcurrentHashMapBenchmark.java | 13 - .../log4j/perf/jmh/ThreadLocalVsPoolBenchmark.java | 12 - .../perf/jmh/ThreadsafeDateFormatBenchmark.java | 11 - .../log4j/perf/jmh/TimeFormatBenchmark.java | 310 -------- .../logging/log4j/perf/jmh/UnboxBenchmark.java | 14 - .../log4j/perf/jmh/UuidGeneratorBenchmark.java | 7 - .../logging/log4j/perf/jmh/VarargsBenchmark.java | 11 - ...PatternDynamicFormatterSequencingBenchmark.java | 96 +++ .../instant/InstantPatternFormatterBenchmark.java | 215 ++++++ .../InstantPatternFormatterImpactBenchmark.java | 187 +++++ .../logging/log4j/perf/jmh/package-info.java | 23 - .../logging/log4j/perf/nogc/OpenHashStringMap.java | 46 +- .../org/apache/logging/log4j/perf/nogc/Test.java | 116 --- log4j-slf4j-impl/pom.xml | 5 - .../org/apache/logging/slf4j/package-info.java | 4 +- .../logging/other/pkg/LoggerContextAnchorTest.java | 12 +- .../logging/slf4j/CallerInformationTest.java | 33 +- .../org/apache/logging/slf4j/Log4j1222Test.java | 13 +- .../org/apache/logging/slf4j/Log4jMarkerTest.java | 24 +- .../apache/logging/slf4j/LoggerContextTest.java | 13 +- .../java/org/apache/logging/slf4j/LoggerTest.java | 69 +- .../java/org/apache/logging/slf4j/MarkerTest.java | 75 +- .../org/apache/logging/slf4j/OptionalTest.java | 41 +- .../org/apache/logging/slf4j/OverflowTest.java | 8 +- .../org/apache/logging/slf4j/SerializeTest.java | 15 +- .../ThrowableConsumingMessageFactoryTest.java | 4 +- log4j-slf4j2-impl/pom.xml | 33 +- .../logging/other/pkg/LoggerContextAnchorTest.java | 12 +- .../logging/slf4j/CallerInformationTest.java | 41 +- .../org/apache/logging/slf4j/Log4j1222Test.java | 13 +- .../logging/slf4j/Log4jEventBuilderTest.java | 8 +- .../apache/logging/slf4j/Log4jMDCAdapterTest.java | 4 +- .../org/apache/logging/slf4j/Log4jMarkerTest.java | 24 +- .../apache/logging/slf4j/LoggerContextTest.java | 13 +- .../java/org/apache/logging/slf4j/LoggerTest.java | 77 +- .../java/org/apache/logging/slf4j/MarkerTest.java | 75 +- .../org/apache/logging/slf4j/OverflowTest.java | 8 +- .../org/apache/logging/slf4j/SerializeTest.java | 15 +- .../ThrowableConsumingMessageFactoryTest.java | 4 +- .../spring/boot/Log4j2SpringBootLoggingSystem.java | 6 +- .../spring/boot/Log4j2SpringBootInitTest.java | 6 +- .../boot/Log4j2SpringBootLoggingSystemTest.java | 13 +- .../log4j/spring/boot/SpringLookupTest.java | 6 +- .../log4j/spring/boot/SpringProfileTest.java | 2 +- log4j-spring-cloud-config-client/pom.xml | 2 +- .../config/client/Log4j2EventListenerTest.java | 2 +- log4j-taglib/pom.xml | 5 - .../logging/log4j/taglib/CatchingTagTest.java | 45 +- .../apache/logging/log4j/taglib/DumpTagTest.java | 40 +- .../apache/logging/log4j/taglib/EnterTagTest.java | 36 +- .../log4j/taglib/ExceptionAwareTagSupportTest.java | 24 +- .../apache/logging/log4j/taglib/ExitTagTest.java | 37 +- .../logging/log4j/taglib/IfEnabledTagTest.java | 39 +- .../apache/logging/log4j/taglib/LogTagTest.java | 24 +- .../log4j/taglib/LoggerAwareTagSupportTest.java | 84 +-- .../log4j/taglib/LoggingMessageTagSupportTest.java | 94 +-- .../logging/log4j/taglib/SetLoggerTagTest.java | 138 ++-- .../apache/logging/log4j/taglib/TagLevelTest.java | 45 +- .../logging/log4j/taglib/TagUtilsLevelTest.java | 27 +- .../logging/log4j/taglib/TagUtilsScopeTest.java | 24 +- .../org/apache/logging/log4j/tojul/JULLogger.java | 4 +- .../apache/logging/log4j/tojul/JULLoggerTest.java | 4 +- .../org/apache/logging/log4j/tojul/LoggerTest.java | 42 +- log4j-to-slf4j/pom.xml | 7 +- .../logging/slf4j/CallerInformationTest.java | 16 +- .../apache/logging/slf4j/Log4j2Jira1688Test.java | 4 +- .../org/apache/logging/slf4j/LogBuilderTest.java | 4 +- .../logging/slf4j/LoggerContextResolver.java | 4 +- .../org/apache/logging/slf4j/LoggerResolver.java | 4 +- .../java/org/apache/logging/slf4j/LoggerTest.java | 70 +- .../apache/logging/slf4j/MDCContextMapTest.java | 3 +- .../org/apache/logging/slf4j/MDCTestHelper.java | 24 +- .../log4j/web/appender/ServletAppender.java | 1 + .../web/Log4jServletContainerInitializerTest.java | 20 +- .../log4j/web/Log4jServletContextListenerTest.java | 12 +- .../logging/log4j/web/Log4jServletFilterTest.java | 12 +- ...og4jShutdownOnContextDestroyedListenerTest.java | 8 +- .../log4j/web/Log4jWebInitializerImplTest.java | 40 +- .../org/apache/logging/log4j/web/PropertyTest.java | 6 +- .../logging/log4j/web/ServletAppenderTest.java | 4 +- .../apache/logging/log4j/web/TestAsyncServlet.java | 8 +- .../apache/logging/log4j/web/WebLookupTest.java | 6 +- mvnw | 2 +- oss-fuzz-build.sh | 8 - package.json | 2 +- pom.xml | 48 +- src/changelog/.2.x.x/.release-notes.adoc.ftl | 6 +- src/changelog/.index.adoc.ftl | 2 +- src/changelog/2.0.1/.release-notes.adoc.ftl | 2 +- src/changelog/2.0.2/.release-notes.adoc.ftl | 2 +- src/changelog/2.0/.release-notes.adoc.ftl | 6 +- src/changelog/2.1/.release-notes.adoc.ftl | 2 +- src/changelog/2.15.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.16.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.17.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.17.1/.release-notes.adoc.ftl | 2 +- src/changelog/2.17.2/.release-notes.adoc.ftl | 2 +- src/changelog/2.18.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.19.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.2/.release-notes.adoc.ftl | 2 +- src/changelog/2.20.0/.release-notes.adoc.ftl | 2 +- src/changelog/2.21.0/.release-notes.adoc.ftl | 6 +- src/changelog/2.21.1/.release-notes.adoc.ftl | 6 +- .../2.23.0/add_support_for_disruptor_4.xml | 2 +- .../2.23.1/fix_StatusLogger_instant_formatting.xml | 4 +- src/changelog/2.24.0/.release-notes.adoc.ftl | 4 +- .../2.24.3/3239_npe_fix_regex_filter_creator.xml | 11 + src/changelog/2.25.0/.release-notes.adoc.ftl | 76 ++ .../changelog/2.25.0/.release.xml | 11 +- .../1736_split_jansi_support.xml} | 6 +- .../2229_mongodb_docker.xml} | 6 +- .../2295_add_JMS_Jakarta_Appender.xml} | 6 +- ...x_RollingFileManager_unsuccessful_rollover.xml} | 8 +- ...91_change_PatternLayout_exception_rendering.xml | 9 + .../2.25.0/2691_deprecate_ThrowableProxy.xml | 9 + .../2691_fix_PatternLayout_exception_rendering.xml | 11 + src/changelog/2.25.0/2767_reload_key_stores.xml | 9 + .../2.25.0/2767_simplify_SSL_config_logic.xml | 9 + .../2769_pluginAttribute_publicSetterWarning.xml} | 8 +- .../2916_rewrite_jansi_renderer.xml} | 6 +- ...precate_AbstractLogger_checkMessageFactory.xml} | 6 +- .../2937-http-watcher.xml} | 6 +- .../2942_fix_ThreadContext_putAll.xml} | 6 +- .../2949_add_fuzzing.xml} | 4 +- .../3011_http_appender_validation.xml} | 6 +- .../3030_fix_log4j1_getLogger.xml} | 6 +- .../3045_change_PatternLayout_prefix.xml} | 6 +- .../3045_fix_PatternLayout_rEx_property.xml} | 6 +- .../3045_remove_PatternLayout_ex_ansi.xml} | 6 +- .../3048_fix_ThreadContext_remove.xml} | 6 +- .../3053_graalvm_processor.xml} | 6 +- .../3056_android_support.xml} | 6 +- src/changelog/2.25.0/3066_fix_bom.xml | 9 + .../2.25.0/3074_monitor_additional_files.xml | 9 + .../3085_fix_log4j_1_priority.xml} | 6 +- src/changelog/2.25.0/3118_default_layout.xml | 11 + .../3119_set_level_call_parent.xml} | 8 +- .../3121_deprecate_FixedDateFormat.xml} | 6 +- src/changelog/2.25.0/3121_instant_format.xml | 9 + ...123_change_PatternLayout_exception_renderer.xml | 8 + ...27_JDBC_appender_IOException_stream_closed.xml} | 6 +- .../3143_logger_registry.xml} | 8 +- .../3149_change_StatusData_prefix.xml} | 6 +- ...1_fix_mongodb_appender_deprecation_warning.xml} | 6 +- .../3153_fix_StringMatchFilter_guardNPE.xml} | 6 +- ...ix_AsyncWaitStrategyFactoryConfig_guardNPE.xml} | 6 +- .../3206_fix_rootLogger_shorthand_npe.xml} | 10 +- .../3212_fix_JTL_StackTraceStringResolver.xml} | 6 +- .../3215_fix-RegexReplacement.xml} | 8 +- src/changelog/2.25.0/3217_precise_clock.xml | 10 + .../3257_fix_AsyncAppender_requiresLocation.xml} | 6 +- ...3257_fix_FailoverAppender_requiresLocation.xml} | 6 +- .../3300_fix-javadoc.xml} | 8 +- .../3359_fix-javadoc.xml} | 8 +- ...3369_fix_typo_in_RootLogger_Builder_method.xml} | 7 +- .../3398_fix_JTL_RecyclerFactoryConverter.xml} | 6 +- .../3399_logger_registry.xml} | 8 +- ..._InternalLoggerRegistry_stale_entry_expunge.xml | 13 + .../3431_default_config_name.xml} | 8 +- .../3437_transtive_compile_only_dependencies.xml | 11 + .../3467_add_mongodb_conn_db_name.xml} | 4 +- .../3508_LoggerContext_shutdownDisable.xml} | 10 +- .../3562_StatusData_ArrayIndexOutOfBounds.xml} | 8 +- src/changelog/2.25.0/3586_improve_GcpLayout.xml | 10 + .../3601_deprecate_or_remove_hiding_methods.xml} | 8 +- ...e_optimization_for_filling_the_stack_trace.xml} | 8 +- .../3645_speedup_array_logging.xml} | 8 +- ...g_stack_traces_in_ExtendedThreadInformation.xml | 10 + .../3665_fix_StatusLogger_writing_to_stdout.xml} | 8 +- ...3669_generalize_ReadOnlyStringMap_equality.xml} | 8 +- ...il_base64_directly_instead_of_reflectively.xml} | 6 +- .../3706_osgi-disruptor.xml} | 6 +- .../fix_JsonWriter_surrogate_handling.xml} | 5 +- .../throwable-proxy-clean-up.xml} | 7 +- .../update_actions_stale.xml} | 6 +- .../update_ch_qos_logback_logback_core.xml} | 6 +- .../update_com_fasterxml_jackson_jackson_bom.xml} | 6 +- ...e_com_github_spotbugs_spotbugs_annotations.xml} | 6 +- .../update_io_fabric8_docker_maven_plugin.xml} | 6 +- .../update_org_apache_cassandra_cassandra_all.xml} | 6 +- .../update_org_apache_commons_commons_csv.xml} | 6 +- .../update_org_apache_commons_commons_dbcp2.xml} | 6 +- .../update_org_apache_commons_commons_pool2.xml} | 6 +- .../update_org_apache_kafka_kafka_clients.xml} | 6 +- .../update_org_apache_logging_logging_parent.xml} | 5 +- .../update_org_apache_tomcat_tomcat_juli.xml} | 6 +- .../update_org_eclipse_jetty_jetty_util.xml} | 6 +- .../update_org_jmdns_jmdns.xml} | 6 +- .../update_org_mongodb_bson.xml} | 6 +- .../update_org_slf4j_slf4j_api.xml} | 6 +- ...springframework_cloud_spring_cloud_context.xml} | 6 +- src/changelog/2.3/.release-notes.adoc.ftl | 2 +- src/changelog/2.4.1/.release-notes.adoc.ftl | 2 +- src/changelog/2.4/.release-notes.adoc.ftl | 2 +- src/site/antora/antora.tmpl.yml | 1 - src/site/antora/antora.yml | 1 - .../appenders/database/nosql-mongo-keys.json | 4 +- .../appenders/database/nosql-mongo-keys.properties | 4 +- .../manual/appenders/database/nosql-mongo-keys.xml | 4 +- .../appenders/database/nosql-mongo-keys.yaml | 4 +- .../manual/appenders/database/nosql-mongo.json | 4 +- .../appenders/database/nosql-mongo.properties | 4 +- .../manual/appenders/database/nosql-mongo.xml | 4 +- .../manual/appenders/database/nosql-mongo.yaml | 4 +- .../manual/configuration/main-elements.yaml | 10 +- .../manual/configuration/monitor-resources.json | 15 + .../configuration/monitor-resources.properties | 17 +- .../monitor-resources.xml} | 21 +- .../manual/configuration/monitor-resources.yaml | 17 +- src/site/antora/modules/ROOT/nav.adoc | 1 + .../antora/modules/ROOT/pages/development.adoc | 8 +- src/site/antora/modules/ROOT/pages/faq.adoc | 52 ++ src/site/antora/modules/ROOT/pages/graalvm.adoc | 128 ++++ .../modules/ROOT/pages/manual/appenders.adoc | 43 +- .../ROOT/pages/manual/appenders/database.adoc | 32 +- .../ROOT/pages/manual/appenders/message-queue.adoc | 39 +- .../modules/ROOT/pages/manual/architecture.adoc | 8 +- .../antora/modules/ROOT/pages/manual/async.adoc | 54 +- .../modules/ROOT/pages/manual/configuration.adoc | 59 ++ .../modules/ROOT/pages/manual/garbagefree.adoc | 2 + .../modules/ROOT/pages/manual/installation.adoc | 36 +- .../ROOT/pages/manual/json-template-layout.adoc | 7 + .../antora/modules/ROOT/pages/manual/messages.adoc | 2 +- .../modules/ROOT/pages/manual/pattern-layout.adoc | 228 +++--- .../antora/modules/ROOT/pages/manual/plugins.adoc | 45 +- .../ROOT/pages/manual/systemproperties.adoc | 7 - .../antora/modules/ROOT/pages/release-notes.adoc | 6 + .../properties-context-selector.adoc | 6 +- .../manual/systemproperties/properties-jansi.adoc | 32 - .../properties-log4j-core-misc.adoc | 35 +- 1214 files changed, 19322 insertions(+), 14314 deletions(-) diff --cc log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java index 092c082ed4,612840bbf5..48befed7f9 --- a/log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java +++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java @@@ -369,28 -370,28 +370,47 @@@ class UnmodifiableArrayBackedMapTest } @Test - public void testToMap() { + void testToMap() { UnmodifiableArrayBackedMap map = UnmodifiableArrayBackedMap.EMPTY_MAP.copyAndPut("test", "test"); // verify same instance, not just equals() - assertTrue(map == map.toMap()); + assertSame(map, map.toMap()); + } + + @Test + void copyAndRemoveAll_should_work() { + + // Create the actual map + UnmodifiableArrayBackedMap actualMap = UnmodifiableArrayBackedMap.EMPTY_MAP; + actualMap = actualMap.copyAndPut("outer", "two"); + actualMap = actualMap.copyAndPut("inner", "one"); + actualMap = actualMap.copyAndPut("not-in-closeable", "true"); + + // Create the expected map + UnmodifiableArrayBackedMap expectedMap = UnmodifiableArrayBackedMap.EMPTY_MAP; + expectedMap = expectedMap.copyAndPut("outer", "two"); + expectedMap = expectedMap.copyAndPut("not-in-closeable", "true"); + + // Remove the key and verify + actualMap = actualMap.copyAndRemoveAll(Collections.singleton("inner")); + Assertions.assertThat(actualMap).isEqualTo(expectedMap); } + + @Test + void copyAndRemoveAll_should_work() { + + // Create the actual map + UnmodifiableArrayBackedMap actualMap = UnmodifiableArrayBackedMap.EMPTY_MAP; + actualMap = actualMap.copyAndPut("outer", "two"); + actualMap = actualMap.copyAndPut("inner", "one"); + actualMap = actualMap.copyAndPut("not-in-closeable", "true"); + + // Create the expected map + UnmodifiableArrayBackedMap expectedMap = UnmodifiableArrayBackedMap.EMPTY_MAP; + expectedMap = expectedMap.copyAndPut("outer", "two"); + expectedMap = expectedMap.copyAndPut("not-in-closeable", "true"); + + // Remove the key and verify + actualMap = actualMap.copyAndRemoveAll(Collections.singleton("inner")); + Assertions.assertThat(actualMap).isEqualTo(expectedMap); + } } diff --cc log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java index 4b160f98ef,4c3dde9179..0f2eebcb70 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java @@@ -17,10 -17,11 +17,9 @@@ package org.apache.logging.log4j.core.config; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.IOException; import java.io.InputStream; - import java.io.Serializable; import java.lang.ref.WeakReference; -import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection;
