Merge branch 'master' into LOG4J2-1390 # Conflicts: # log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/39e28336 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/39e28336 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/39e28336 Branch: refs/heads/LOG4J2-1390 Commit: 39e2833698ddea21e10cb9a57e1638f40cdda0a1 Parents: 3fac1c7 6ffcd1e Author: Mikael Ståldal <[email protected]> Authored: Mon Oct 24 10:07:38 2016 +0200 Committer: Mikael Ståldal <[email protected]> Committed: Mon Oct 24 10:07:38 2016 +0200 ---------------------------------------------------------------------- .gitignore | 14 +- BUILDING.txt | 100 +- README.md | 8 + RELEASE-NOTES.txt | 200 ++-- log4j-1.2-api/.gitignore | 5 - log4j-1.2-api/pom.xml | 9 +- .../src/main/java/org/apache/log4j/Layout.java | 4 +- .../apache/log4j/config/InputStreamWrapper.java | 92 ++ .../config/Log4j1ConfigurationConverter.java | 211 ++++ .../config/Log4j1ConfigurationFactory.java | 278 +---- .../log4j/config/Log4j1ConfigurationParser.java | 446 ++++++++ .../apache/log4j/layout/Log4j1XmlLayout.java | 162 +++ .../pattern/Log4j1MdcPatternConverter.java | 88 ++ .../pattern/Log4j1NdcPatternConverter.java | 63 ++ .../apache/log4j/BasicConfigurationFactory.java | 13 +- .../java/org/apache/log4j/CategoryTest.java | 3 +- .../java/org/apache/log4j/LogWithMDCTest.java | 6 +- .../java/org/apache/log4j/LogWithRouteTest.java | 6 +- ...bstractLog4j1ConfigurationConverterTest.java | 69 ++ .../Log4j1ConfigurationConverterHadoopTest.java | 39 + .../Log4j1ConfigurationConverterSparkTest.java | 39 + .../config/Log4j1ConfigurationFactoryTest.java | 237 +++- .../log4j/layout/Log4j1XmlLayoutTest.java | 84 ++ .../pattern/Log4j1MdcPatternConverterTest.java | 79 ++ .../pattern/Log4j1NdcPatternConverterTest.java | 74 ++ .../src/main/resources/log4j.properties | 19 + .../src/main/conf/log4j.properties | 323 ++++++ .../src/test/resources/log4j.properties | 18 + .../src/test/resources/log4j.properties | 31 + .../src/main/resources/log4j.properties | 31 + .../src/test/resources/log4j.properties | 18 + .../src/test/resources/log4j.properties | 49 + .../src/test/resources/log4j.properties | 55 + .../src/test/resources/log4j.properties | 49 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 23 + .../src/test/resources/log4j.properties | 25 + .../src/test/resources/log4j.properties | 42 + .../src/main/sample-conf/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 37 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 63 ++ .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../src/test/resources/log4j.properties | 19 + .../log4j-DailyRollingFileAppender.properties | 26 + .../config-1.2/log4j-NullAppender.properties | 9 + ...4j-RollingFileAppender-with-props.properties | 27 + .../log4j-RollingFileAppender.properties | 22 + ...g4j-console-EnhancedPatternLayout.properties | 3 +- .../log4j-console-HtmlLayout.properties | 3 +- .../log4j-console-PatternLayout.properties | 1 - .../log4j-console-SimpleLayout.properties | 1 - .../log4j-console-TTCCLayout.properties | 3 +- .../log4j-console-XmlLayout.properties | 5 +- .../log4j-file-SimpleLayout.properties | 17 + .../log4j-system-properties-1.properties | 14 + .../log4j-system-properties-2.properties | 15 + .../config-1.2/spark/R/log4j.properties | 28 + .../src/test/resources/log4j.properties | 27 + .../src/test/resources/log4j.properties | 24 + .../core/src/test/resources/log4j.properties | 36 + .../src/test/resources/log4j.properties | 28 + .../flume/src/test/resources/log4j.properties | 28 + .../src/test/resources/log4j.properties | 27 + .../src/test/resources/log4j.properties | 28 + .../src/test/resources/log4j.properties | 28 + .../src/main/resources/log4j.properties | 37 + .../src/test/resources/log4j.properties | 27 + .../graphx/src/test/resources/log4j.properties | 27 + .../src/test/resources/log4j.properties | 33 + .../mllib/src/test/resources/log4j.properties | 28 + .../repl/src/test/resources/log4j.properties | 27 + .../src/test/resources/log4j.properties | 27 + .../core/src/test/resources/log4j.properties | 57 + .../hive/src/test/resources/log4j.properties | 61 ++ .../src/test/resources/log4j.properties | 28 + .../yarn/src/test/resources/log4j.properties | 31 + log4j-api-scala_2.10/pom.xml | 150 +++ .../org/apache/logging/log4j/scala/Logger.scala | 592 ++++++++++ .../logging/log4j/scala/LoggerMacro.scala | 425 ++++++++ .../apache/logging/log4j/scala/Logging.scala | 30 + .../apache/logging/log4j/scala/LoggerTest.scala | 550 ++++++++++ log4j-api-scala_2.11/pom.xml | 150 +++ .../org/apache/logging/log4j/scala/Logger.scala | 592 ++++++++++ .../logging/log4j/scala/LoggerMacro.scala | 425 ++++++++ .../apache/logging/log4j/scala/Logging.scala | 30 + .../apache/logging/log4j/scala/LoggerTest.scala | 550 ++++++++++ log4j-api/.gitignore | 5 - log4j-api/pom.xml | 2 +- .../logging/log4j/CloseableThreadContext.java | 11 +- .../org/apache/logging/log4j/LogManager.java | 18 +- .../java/org/apache/logging/log4j/Logger.java | 70 +- .../org/apache/logging/log4j/MarkerManager.java | 4 +- .../org/apache/logging/log4j/ThreadContext.java | 123 ++- .../log4j/message/AbstractMessageFactory.java | 110 +- .../message/DefaultFlowMessageFactory.java | 15 +- .../log4j/message/FormattedMessageFactory.java | 97 +- .../logging/log4j/message/LocalizedMessage.java | 2 +- .../log4j/message/LocalizedMessageFactory.java | 10 +- .../logging/log4j/message/MessageFactory2.java | 112 +- .../log4j/message/MessageFormatMessage.java | 2 +- .../message/MessageFormatMessageFactory.java | 93 +- .../logging/log4j/message/ObjectMessage.java | 21 +- .../log4j/message/ParameterFormatter.java | 36 +- .../log4j/message/ParameterizedMessage.java | 22 +- .../message/ParameterizedMessageFactory.java | 105 +- .../ParameterizedNoReferenceMessageFactory.java | 12 +- .../log4j/message/ReusableMessageFactory.java | 21 +- .../log4j/message/ReusableObjectMessage.java | 26 +- .../message/ReusableParameterizedMessage.java | 92 +- .../log4j/message/ReusableSimpleMessage.java | 4 +- .../logging/log4j/message/SimpleMessage.java | 4 +- .../log4j/message/SimpleMessageFactory.java | 102 +- .../log4j/message/StringFormattedMessage.java | 6 + .../message/StringFormatterMessageFactory.java | 94 +- .../log4j/simple/SimpleLoggerContext.java | 14 +- .../simple/SimpleLoggerContextFactory.java | 1 + .../logging/log4j/spi/AbstractLogger.java | 112 +- .../log4j/spi/AbstractLoggerAdapter.java | 31 +- .../apache/logging/log4j/spi/CopyOnWrite.java | 25 + .../CopyOnWriteSortedArrayThreadContextMap.java | 224 ++++ .../log4j/spi/DefaultThreadContextMap.java | 64 +- .../GarbageFreeSortedArrayThreadContextMap.java | 225 ++++ .../logging/log4j/spi/LoggerRegistry.java | 2 +- .../log4j/spi/MutableThreadContextStack.java | 10 +- .../logging/log4j/spi/NoOpThreadContextMap.java | 65 ++ .../org/apache/logging/log4j/spi/Provider.java | 6 +- .../logging/log4j/spi/ThreadContextMap.java | 63 +- .../logging/log4j/spi/ThreadContextMap2.java | 51 + .../log4j/spi/ThreadContextMapFactory.java | 91 ++ .../logging/log4j/spi/ThreadContextStack.java | 1 + .../apache/logging/log4j/status/StatusData.java | 2 +- .../logging/log4j/status/StatusLogger.java | 2 +- .../apache/logging/log4j/util/Activator.java | 1 + .../apache/logging/log4j/util/BiConsumer.java | 35 + .../apache/logging/log4j/util/Constants.java | 62 ++ .../apache/logging/log4j/util/LambdaUtil.java | 2 +- .../apache/logging/log4j/util/LoaderUtil.java | 48 +- .../logging/log4j/util/PropertiesUtil.java | 597 +++++----- .../logging/log4j/util/ReadOnlyStringMap.java | 106 ++ .../log4j/util/SortedArrayStringMap.java | 528 +++++++++ .../logging/log4j/util/StringBuilders.java | 38 +- .../apache/logging/log4j/util/StringMap.java | 98 ++ .../org/apache/logging/log4j/util/Strings.java | 70 ++ .../org/apache/logging/log4j/util/Supplier.java | 1 + .../apache/logging/log4j/util/TriConsumer.java | 37 + .../org/apache/logging/log4j/util/Unbox.java | 137 ++- .../logging/log4j/AbstractLoggerTest.java | 4 +- .../log4j/CloseableThreadContextTest.java | 11 +- .../apache/logging/log4j/LogManagerTest.java | 2 +- .../org/apache/logging/log4j/LoggerTest.java | 78 +- .../apache/logging/log4j/TestLoggerContext.java | 4 +- .../logging/log4j/ThreadContextHolder.java | 79 ++ .../apache/logging/log4j/ThreadContextTest.java | 20 + .../apache/logging/log4j/TraceLoggingTest.java | 316 ++++++ .../logging/log4j/junit/BundleTestInfo.java | 137 +-- .../apache/logging/log4j/junit/OsgiRule.java | 141 +-- .../log4j/junit/ThreadContextMapRule.java | 37 + .../logging/log4j/junit/ThreadContextRule.java | 78 ++ .../log4j/junit/ThreadContextStackRule.java | 37 + .../logging/log4j/message/JsonMessage.java | 2 +- .../log4j/message/ParameterFormatterTest.java | 12 +- .../log4j/message/ParameterizedMessageTest.java | 24 + .../message/ReusableMessageFactoryTest.java | 130 +++ .../message/ReusableObjectMessageTest.java | 18 +- .../ReusableParameterizedMessageTest.java | 21 +- .../message/ReusableSimpleMessageTest.java | 18 +- .../log4j/spi/DefaultThreadContextMapTest.java | 26 +- .../logging/log4j/spi/LoggerAdapterTest.java | 126 +++ .../log4j/util/SortedArrayStringMapTest.java | 1029 ++++++++++++++++++ .../apache/logging/log4j/util/Unbox1Test.java | 170 +++ .../log4j/util/Unbox2ConfigurableTest.java | 91 ++ .../apache/logging/log4j/util/UnboxTest.java | 157 --- log4j-bom/.gitignore | 2 - log4j-bom/pom.xml | 26 +- log4j-core/.gitignore | 5 - log4j-core/pom.xml | 56 +- .../logging/log4j/ThreadContextAccess.java | 59 + .../logging/log4j/core/AbstractLifeCycle.java | 25 +- .../logging/log4j/core/AbstractLogEvent.java | 6 + .../logging/log4j/core/ContextDataInjector.java | 108 ++ .../apache/logging/log4j/core/LifeCycle.java | 11 +- .../apache/logging/log4j/core/LifeCycle2.java | 37 + .../org/apache/logging/log4j/core/LogEvent.java | 25 + .../org/apache/logging/log4j/core/Logger.java | 4 +- .../logging/log4j/core/LoggerContext.java | 161 ++- .../log4j/core/appender/AbstractAppender.java | 65 ++ .../log4j/core/appender/AbstractManager.java | 90 +- .../appender/AbstractOutputStreamAppender.java | 62 +- .../core/appender/AbstractWriterAppender.java | 248 ++--- .../log4j/core/appender/AppenderSet.java | 137 +++ .../log4j/core/appender/AsyncAppender.java | 174 ++- .../core/appender/ConfigurationFactoryData.java | 50 + .../log4j/core/appender/ConsoleAppender.java | 153 +-- .../core/appender/CountingNoOpAppender.java | 9 +- .../log4j/core/appender/FailoverAppender.java | 2 +- .../log4j/core/appender/FileAppender.java | 279 +++-- .../log4j/core/appender/FileManager.java | 114 +- .../core/appender/MemoryMappedFileAppender.java | 13 +- .../core/appender/MemoryMappedFileManager.java | 14 +- .../log4j/core/appender/NullAppender.java | 48 + .../core/appender/OutputStreamAppender.java | 3 +- .../core/appender/OutputStreamManager.java | 635 ++++++----- .../core/appender/RandomAccessFileAppender.java | 25 +- .../core/appender/RandomAccessFileManager.java | 35 +- .../core/appender/RollingFileAppender.java | 578 ++++++---- .../RollingRandomAccessFileAppender.java | 15 +- .../core/appender/ScriptAppenderSelector.java | 141 +++ .../log4j/core/appender/SmtpAppender.java | 3 +- .../log4j/core/appender/SocketAppender.java | 244 ++++- .../log4j/core/appender/SyslogAppender.java | 11 +- .../log4j/core/appender/WriterAppender.java | 3 +- .../log4j/core/appender/WriterManager.java | 300 ++--- .../appender/db/AbstractDatabaseAppender.java | 280 ++--- .../appender/db/AbstractDatabaseManager.java | 457 ++++---- .../db/jdbc/FactoryMethodConnectionSource.java | 4 +- .../core/appender/db/jdbc/JdbcAppender.java | 3 +- .../appender/db/jdbc/JdbcDatabaseManager.java | 515 ++++----- .../db/jpa/AbstractLogEventWrapperEntity.java | 31 +- .../appender/db/jpa/BasicLogEventEntity.java | 1 - .../log4j/core/appender/db/jpa/JpaAppender.java | 7 +- .../appender/db/jpa/JpaDatabaseManager.java | 381 +++---- .../ContextDataAttributeConverter.java | 46 + .../ContextDataJsonAttributeConverter.java | 93 ++ .../converter/ThrowableAttributeConverter.java | 4 +- .../log4j/core/appender/mom/JmsAppender.java | 425 ++++---- .../log4j/core/appender/mom/JmsManager.java | 347 +++--- .../appender/mom/jeromq/JeroMqAppender.java | 10 +- .../core/appender/mom/jeromq/JeroMqManager.java | 442 ++++---- .../core/appender/mom/kafka/KafkaAppender.java | 23 +- .../core/appender/mom/kafka/KafkaManager.java | 18 +- .../core/appender/rewrite/RewriteAppender.java | 7 +- .../rolling/AbstractTriggeringPolicy.java | 28 + .../rolling/CompositeTriggeringPolicy.java | 187 ++-- .../appender/rolling/CronTriggeringPolicy.java | 74 +- .../rolling/DefaultRolloverStrategy.java | 40 +- .../log4j/core/appender/rolling/FileSize.java | 181 +-- .../rolling/OnStartupTriggeringPolicy.java | 58 +- .../core/appender/rolling/PatternProcessor.java | 12 +- .../appender/rolling/RollingFileManager.java | 113 +- .../rolling/RollingRandomAccessFileManager.java | 46 +- .../rolling/SizeBasedTriggeringPolicy.java | 206 ++-- .../rolling/TimeBasedTriggeringPolicy.java | 2 +- .../core/appender/rolling/TriggeringPolicy.java | 10 +- .../rolling/action/CommonsCompressAction.java | 9 +- .../appender/rolling/action/DeleteAction.java | 2 +- .../core/appender/rolling/action/Duration.java | 514 ++++----- .../rolling/action/FileRenameAction.java | 97 +- .../core/appender/rolling/action/IfAll.java | 232 ++-- .../core/appender/rolling/action/IfAny.java | 172 +-- .../core/appender/routing/IdlePurgePolicy.java | 82 +- .../core/appender/routing/PurgePolicy.java | 6 +- .../log4j/core/appender/routing/Routes.java | 176 ++- .../core/appender/routing/RoutingAppender.java | 250 ++++- .../core/async/ArrayBlockingQueueFactory.java | 42 + .../logging/log4j/core/async/AsyncLogger.java | 53 +- .../log4j/core/async/AsyncLoggerConfig.java | 8 +- ...syncLoggerConfigDefaultExceptionHandler.java | 4 +- .../core/async/AsyncLoggerConfigDisruptor.java | 26 +- .../log4j/core/async/AsyncLoggerContext.java | 14 +- .../AsyncLoggerDefaultExceptionHandler.java | 4 +- .../log4j/core/async/AsyncLoggerDisruptor.java | 487 +++++---- .../log4j/core/async/BlockingQueueFactory.java | 42 + .../log4j/core/async/DaemonThreadFactory.java | 53 - .../core/async/DefaultAsyncQueueFullPolicy.java | 14 +- .../async/DisruptorBlockingQueueFactory.java | 53 + .../logging/log4j/core/async/DisruptorUtil.java | 2 +- .../core/async/JCToolsBlockingQueueFactory.java | 198 ++++ .../core/async/LinkedTransferQueueFactory.java | 43 + .../log4j/core/async/RingBufferLogEvent.java | 84 +- .../async/RingBufferLogEventTranslator.java | 20 +- .../core/config/AbstractConfiguration.java | 94 +- .../log4j/core/config/AppenderControl.java | 5 +- .../log4j/core/config/AppendersPlugin.java | 4 +- .../AwaitCompletionReliabilityStrategy.java | 350 +++--- ...AwaitUnconditionallyReliabilityStrategy.java | 246 ++--- .../log4j/core/config/Configuration.java | 22 +- .../core/config/ConfigurationException.java | 14 +- .../log4j/core/config/ConfigurationFactory.java | 107 +- .../core/config/ConfigurationScheduler.java | 78 +- .../log4j/core/config/ConfigurationSource.java | 6 +- .../core/config/ConfiguratonFileWatcher.java | 32 +- .../logging/log4j/core/config/Configurator.java | 722 ++++++------ .../log4j/core/config/CronScheduledFuture.java | 43 +- .../log4j/core/config/DefaultConfiguration.java | 2 +- .../core/config/DefaultReliabilityStrategy.java | 214 ++-- .../core/config/LockingReliabilityStrategy.java | 270 ++--- .../logging/log4j/core/config/LoggerConfig.java | 129 ++- .../log4j/core/config/NullConfiguration.java | 2 +- .../logging/log4j/core/config/Property.java | 16 +- .../core/config/ReliabilityStrategyFactory.java | 140 +-- .../core/config/builder/api/Component.java | 4 +- .../builder/api/ConfigurationBuilder.java | 53 +- .../config/builder/impl/BuiltConfiguration.java | 16 +- .../builder/impl/DefaultComponentBuilder.java | 4 +- .../impl/DefaultConfigurationBuilder.java | 218 +++- .../DefaultCustomLevelComponentBuilder.java | 2 +- .../impl/DefaultLoggerComponentBuilder.java | 4 +- .../impl/DefaultScriptFileComponentBuilder.java | 8 +- .../composite/CompositeConfiguration.java | 58 +- .../config/composite/DefaultMergeStrategy.java | 92 +- .../core/config/json/JsonConfiguration.java | 13 +- .../config/json/JsonConfigurationFactory.java | 5 +- .../config/plugins/PluginBuilderFactory.java | 1 + .../config/plugins/PluginConfiguration.java | 1 + .../core/config/plugins/PluginFactory.java | 2 +- .../log4j/core/config/plugins/PluginNode.java | 1 + .../config/plugins/convert/TypeConverters.java | 4 +- .../core/config/plugins/util/PluginBuilder.java | 6 +- .../config/plugins/util/PluginRegistry.java | 1 - .../core/config/plugins/util/ResolverUtil.java | 13 +- .../plugins/visitors/PluginElementVisitor.java | 3 + .../plugins/visitors/PluginValueVisitor.java | 18 +- .../properties/PropertiesConfiguration.java | 8 +- .../PropertiesConfigurationBuilder.java | 89 +- .../PropertiesConfigurationFactory.java | 15 +- .../log4j/core/config/xml/XmlConfiguration.java | 56 +- .../config/xml/XmlConfigurationFactory.java | 6 +- .../core/config/yaml/YamlConfiguration.java | 7 +- .../config/yaml/YamlConfigurationFactory.java | 5 +- .../log4j/core/filter/AbstractFilter.java | 23 +- .../log4j/core/filter/AbstractFilterable.java | 73 +- .../logging/log4j/core/filter/BurstFilter.java | 2 +- .../log4j/core/filter/CompositeFilter.java | 33 +- .../core/filter/DynamicThresholdFilter.java | 107 +- .../log4j/core/filter/LevelRangeFilter.java | 17 +- .../logging/log4j/core/filter/MapFilter.java | 17 +- .../logging/log4j/core/filter/ScriptFilter.java | 16 +- .../core/filter/ThreadContextMapFilter.java | 25 +- .../log4j/core/filter/ThresholdFilter.java | 16 +- .../logging/log4j/core/filter/TimeFilter.java | 2 +- .../log4j/core/impl/ContextDataFactory.java | 95 ++ .../core/impl/ContextDataInjectorFactory.java | 92 ++ .../log4j/core/impl/DefaultLogEventFactory.java | 7 +- .../log4j/core/impl/ExtendedClassInfo.java | 23 +- .../core/impl/ExtendedStackTraceElement.java | 46 +- .../log4j/core/impl/JdkMapAdapterStringMap.java | 201 ++++ .../log4j/core/impl/Log4jContextFactory.java | 14 +- .../logging/log4j/core/impl/Log4jLogEvent.java | 150 ++- .../log4j/core/impl/MutableLogEvent.java | 67 +- .../core/impl/ReusableLogEventFactory.java | 28 +- .../core/impl/ThreadContextDataInjector.java | 202 ++++ .../log4j/core/impl/ThrowableFormatOptions.java | 126 ++- .../logging/log4j/core/impl/ThrowableProxy.java | 407 +++---- .../ContextDataAsEntryListDeserializer.java | 57 + .../ContextDataAsEntryListSerializer.java | 58 + .../core/jackson/ContextDataDeserializer.java | 65 ++ .../core/jackson/ContextDataSerializer.java | 64 ++ .../log4j/core/jackson/Initializers.java | 28 +- .../log4j/core/jackson/Log4jJsonModule.java | 13 +- .../core/jackson/Log4jJsonObjectMapper.java | 9 +- .../log4j/core/jackson/Log4jXmlModule.java | 6 +- .../core/jackson/Log4jXmlObjectMapper.java | 9 +- .../log4j/core/jackson/Log4jYamlModule.java | 13 +- .../core/jackson/Log4jYamlObjectMapper.java | 9 +- .../log4j/core/jackson/LogEventJsonMixIn.java | 150 +++ .../log4j/core/jackson/LogEventMixIn.java | 138 --- .../jackson/LogEventWithContextListMixIn.java | 148 +++ .../ThrowableProxyWithoutStacktraceMixIn.java | 77 ++ .../log4j/core/jmx/LoggerContextAdmin.java | 4 +- .../apache/logging/log4j/core/jmx/Server.java | 31 +- .../log4j/core/layout/AbstractCsvLayout.java | 10 +- .../core/layout/AbstractJacksonLayout.java | 1 - .../log4j/core/layout/AbstractStringLayout.java | 53 +- .../log4j/core/layout/CsvLogEventLayout.java | 38 +- .../log4j/core/layout/CsvParameterLayout.java | 7 +- .../logging/log4j/core/layout/GelfLayout.java | 66 +- .../logging/log4j/core/layout/HtmlLayout.java | 123 ++- .../log4j/core/layout/JacksonFactory.java | 32 +- .../logging/log4j/core/layout/JsonLayout.java | 30 +- .../core/layout/MarkerPatternSelector.java | 23 +- .../log4j/core/layout/PatternLayout.java | 37 +- .../core/layout/ScriptPatternSelector.java | 25 +- .../log4j/core/layout/TextEncoderHelper.java | 4 +- .../logging/log4j/core/layout/XmlLayout.java | 17 +- .../logging/log4j/core/layout/YamlLayout.java | 15 +- .../log4j/core/lookup/ContextMapLookup.java | 17 +- .../logging/log4j/core/lookup/Interpolator.java | 61 +- .../logging/log4j/core/lookup/JndiLookup.java | 5 +- .../log4j/core/lookup/StrSubstitutor.java | 19 + .../log4j/core/net/AbstractSocketManager.java | 6 +- .../log4j/core/net/DatagramSocketManager.java | 21 +- .../logging/log4j/core/net/JndiManager.java | 287 ++--- .../log4j/core/net/MulticastDnsAdvertiser.java | 6 +- .../logging/log4j/core/net/SmtpManager.java | 8 +- .../log4j/core/net/SslSocketManager.java | 31 +- .../log4j/core/net/TcpSocketManager.java | 106 +- .../core/net/server/AbstractSocketServer.java | 88 +- .../log4j/core/net/server/JmsServer.java | 286 ++--- .../server/JsonInputStreamLogEventBridge.java | 6 +- .../log4j/core/net/server/TcpSocketServer.java | 184 ++-- .../log4j/core/net/server/UdpSocketServer.java | 83 +- .../net/ssl/AbstractKeyStoreConfiguration.java | 38 + .../core/net/ssl/KeyStoreConfiguration.java | 36 +- .../log4j/core/net/ssl/SslConfiguration.java | 77 +- .../log4j/core/net/ssl/StoreConfiguration.java | 3 + .../core/net/ssl/TrustStoreConfiguration.java | 33 +- .../core/pattern/DatePatternConverter.java | 2 +- .../pattern/EqualsReplacementConverter.java | 2 +- .../ExtendedThrowablePatternConverter.java | 11 +- .../log4j/core/pattern/HighlightConverter.java | 38 +- .../log4j/core/pattern/HtmlTextRenderer.java | 38 + .../log4j/core/pattern/JAnsiTextRenderer.java | 332 ++++++ .../pattern/LineSeparatorPatternConverter.java | 4 +- .../log4j/core/pattern/MdcPatternConverter.java | 112 +- .../core/pattern/MessagePatternConverter.java | 83 +- .../log4j/core/pattern/NameAbbreviator.java | 104 +- .../log4j/core/pattern/PlainTextRenderer.java | 40 + .../pattern/RootThrowablePatternConverter.java | 10 +- .../pattern/SequenceNumberPatternConverter.java | 1 - .../log4j/core/pattern/StyleConverter.java | 24 +- .../log4j/core/pattern/TextRenderer.java | 46 + .../core/pattern/ThrowablePatternConverter.java | 5 +- .../VariablesNotEmptyReplacementConverter.java | 2 +- .../log4j/core/script/AbstractScript.java | 5 + .../logging/log4j/core/script/Script.java | 10 +- .../logging/log4j/core/script/ScriptFile.java | 15 +- .../log4j/core/script/ScriptManager.java | 65 +- .../logging/log4j/core/script/ScriptRef.java | 13 +- .../core/selector/BasicContextSelector.java | 131 +-- .../core/selector/CoreContextSelectors.java | 25 + .../core/selector/JndiContextSelector.java | 2 +- .../logging/log4j/core/tools/Generate.java | 5 +- .../logging/log4j/core/util/ArrayUtils.java | 124 +++ .../apache/logging/log4j/core/util/Assert.java | 38 - .../core/util/BasicCommandLineArguments.java | 47 + .../logging/log4j/core/util/CachedClock.java | 2 +- .../core/util/CloseShieldOutputStream.java | 3 + .../apache/logging/log4j/core/util/Closer.java | 4 +- .../log4j/core/util/CoarseCachedClock.java | 2 +- .../logging/log4j/core/util/Constants.java | 23 +- .../logging/log4j/core/util/CronExpression.java | 180 +-- .../logging/log4j/core/util/CyclicBuffer.java | 4 +- .../util/DefaultShutdownCallbackRegistry.java | 14 +- .../logging/log4j/core/util/DummyNanoClock.java | 96 +- .../log4j/core/util/ExecutorServices.java | 81 ++ .../core/util/ExtensionLanguageMapping.java | 6 +- .../logging/log4j/core/util/FileUtils.java | 4 +- .../logging/log4j/core/util/FileWatcher.java | 2 +- .../log4j/core/util/InetAddressConverter.java | 35 + .../logging/log4j/core/util/JndiCloser.java | 118 +- .../logging/log4j/core/util/JsonUtils.java | 14 +- .../apache/logging/log4j/core/util/Loader.java | 29 +- .../logging/log4j/core/util/Log4jThread.java | 138 +-- .../log4j/core/util/Log4jThreadFactory.java | 93 ++ .../log4j/core/util/NullOutputStream.java | 20 +- .../log4j/core/util/OptionConverter.java | 3 +- .../logging/log4j/core/util/ReflectionUtil.java | 2 +- .../logging/log4j/core/util/StringEncoder.java | 14 +- .../logging/log4j/core/util/Throwables.java | 60 +- .../logging/log4j/core/util/TypeUtil.java | 21 + .../logging/log4j/core/util/WatchManager.java | 36 +- .../core/util/datetime/FastDateParser.java | 54 +- .../core/util/datetime/FixedDateFormat.java | 741 +++++++------ .../log4j/core/util/datetime/FormatCache.java | 2 +- log4j-core/src/main/resources/Log4j-config.xsd | 3 +- .../log4j/FilterPerformanceComparison.java | 124 ++- .../log4j/FormatterLoggerManualExample.java | 7 +- .../apache/logging/log4j/LogRolloverTest.java | 18 +- .../logging/log4j/MarkerMixInXmlTest.java | 2 +- .../logging/log4j/ThreadContextTestAccess.java | 34 + .../log4j/core/BasicConfigurationFactory.java | 6 +- .../apache/logging/log4j/core/DeadlockTest.java | 2 +- .../core/GcFreeAsynchronousLoggingTest.java | 4 +- .../log4j/core/GcFreeLoggingTestUtil.java | 35 +- .../core/GcFreeMixedSyncAyncLoggingTest.java | 4 +- .../core/GcFreeSynchronousLoggingTest.java | 4 +- .../apache/logging/log4j/core/HostNameTest.java | 4 +- .../logging/log4j/core/Log4j1222Test.java | 2 +- .../apache/logging/log4j/core/LogEventTest.java | 4 +- .../apache/logging/log4j/core/LoggerTest.java | 14 +- .../logging/log4j/core/LoggerUpdateTest.java | 2 +- .../logging/log4j/core/PatternSelectorTest.java | 32 +- .../log4j/core/PropertiesFileConfigTest.java | 2 +- .../core/ShutdownTimeoutConfigurationTest.java | 44 + .../logging/log4j/core/StrictXmlConfigTest.java | 1 - .../AsyncAppenderQueueFullPolicyTest.java | 48 +- .../log4j/core/appender/AsyncAppenderTest.java | 46 +- .../ConsoleAppenderAnsiMessagesMain.java | 110 +- .../ConsoleAppenderAnsiStyleJira180Main.java | 119 +- .../ConsoleAppenderAnsiStyleJira272Main.java | 121 +- .../ConsoleAppenderAnsiStyleJira319Main.java | 123 ++- .../ConsoleAppenderAnsiStyleLayoutMain.java | 131 ++- .../ConsoleAppenderAnsiStyleNameLayoutMain.java | 11 +- .../appender/ConsoleAppenderBuilderTest.java | 49 + ...nsoleAppenderDefaultSuppressedThrowable.java | 131 ++- ...nsoleAppenderHighlightLayoutDefaultMain.java | 11 +- ...nsoleAppenderHighlightLayoutLogbackMain.java | 11 +- .../ConsoleAppenderHighlightLayoutMain.java | 11 +- .../ConsoleAppenderJAnsiMessageMain.java | 79 ++ .../ConsoleAppenderJAnsiXExceptionMain.java | 76 ++ .../ConsoleAppenderNoAnsiStyleLayoutMain.java | 145 ++- .../core/appender/ConsoleAppenderTest.java | 43 +- .../CsvJsonParameterLayoutFileAppenderTest.java | 117 ++ .../core/appender/FileAppenderBuilderTest.java | 31 + .../log4j/core/appender/FileAppenderTest.java | 342 +++--- .../log4j/core/appender/HangingAppender.java | 21 +- .../core/appender/InMemoryAppenderTest.java | 4 +- .../log4j/core/appender/Jira739Test.java | 103 +- .../appender/JsonCompleteFileAppenderTest.java | 37 +- .../appender/MemoryMappedFileManagerTest.java | 25 +- .../core/appender/OutputStreamAppenderTest.java | 213 ++-- .../core/appender/ProgressConsoleTest.java | 7 +- .../appender/RandomAccessFileAppenderTests.java | 2 +- .../appender/RandomAccessFileManagerTest.java | 26 +- .../appender/ScriptAppenderSelectorTest.java | 100 ++ .../appender/SocketAppenderBufferSizeTest.java | 77 ++ .../appender/SocketAppenderBuilderTest.java | 32 + .../log4j/core/appender/SocketAppenderTest.java | 254 +++-- .../core/appender/SyslogAppenderTestBase.java | 2 +- .../appender/XmlCompleteFileAppenderTest.java | 68 +- .../db/AbstractDatabaseAppenderTest.java | 145 +-- .../db/AbstractDatabaseManagerTest.java | 356 +++--- .../db/jdbc/AbstractJdbcAppenderTest.java | 34 +- .../db/jdbc/DataSourceConnectionSourceTest.java | 17 +- .../jdbc/FactoryMethodConnectionSourceTest.java | 53 +- .../db/jpa/AbstractJpaAppenderTest.java | 14 +- .../core/appender/db/jpa/JpaH2AppenderTest.java | 28 +- .../db/jpa/JpaHyperSqlAppenderTest.java | 28 +- .../core/appender/db/jpa/TestBaseEntity.java | 7 + .../ContextDataAttributeConverterTest.java | 70 ++ .../ContextDataJsonAttributeConverterTest.java | 84 ++ .../ContextStackJsonAttributeConverterTest.java | 19 +- .../log4j/core/appender/mom/JmsAppenderIT.java | 2 +- .../appender/mom/jeromq/JeroMqAppenderTest.java | 263 ++--- .../appender/mom/kafka/KafkaAppenderTest.java | 292 ++--- .../core/appender/rolling/FileSizeTest.java | 4 +- .../rolling/OnStartupTriggeringPolicyTest.java | 96 +- .../RandomRollingAppenderOnStartupTest.java | 105 ++ .../RollingAppenderCronOnceADayTest.java | 125 +++ .../rolling/RollingAppenderCronTest.java | 73 +- .../RollingAppenderCustomDeleteActionTest.java | 40 +- ...lingAppenderDeleteAccumulatedCount1Test.java | 53 +- ...lingAppenderDeleteAccumulatedCount2Test.java | 53 +- ...ollingAppenderDeleteAccumulatedSizeTest.java | 32 +- .../RollingAppenderDeleteMaxDepthTest.java | 52 +- .../RollingAppenderDeleteNestedTest.java | 53 +- .../RollingAppenderDeleteScriptFri13thTest.java | 37 +- .../RollingAppenderDeleteScriptTest.java | 35 +- ...ollingAppenderNoUnconditionalDeleteTest.java | 12 +- .../rolling/RollingAppenderOnStartupTest.java | 105 ++ .../rolling/RollingAppenderSizeTest.java | 115 +- .../rolling/RollingAppenderTimeAndSizeTest.java | 31 +- .../rolling/RollingAppenderTimeTest.java | 36 +- .../RollingAppenderUncompressedTest.java | 28 +- .../rolling/RollingFileAppenderAccessTest.java | 58 +- .../rolling/RollingFileAppenderBuilderTest.java | 32 + .../rolling/RollingFileAppenderLayoutTest.java | 39 + ...RandomAccessFileManagerHeaderFooterTest.java | 30 +- .../RollingRandomAccessFileManagerTest.java | 155 ++- .../rolling/action/CountingCondition.java | 124 +-- .../rolling/action/DeleteActionTest.java | 238 ++-- .../rolling/action/DeletingVisitorTest.java | 270 ++--- .../appender/rolling/action/DurationTest.java | 298 ++--- .../appender/rolling/action/FixedCondition.java | 88 +- .../action/IfAccumulatedFileCountTest.java | 150 +-- .../action/IfAccumulatedFileSizeTest.java | 260 ++--- .../rolling/action/IfLastModifiedTest.java | 194 ++-- .../action/PathSortByModificationTimeTest.java | 186 ++-- .../rolling/action/ScriptConditionTest.java | 260 ++--- .../rolling/action/SortingVisitorTest.java | 188 ++-- .../routing/DefaultRouteScriptAppenderTest.java | 152 +++ .../routing/JsonRoutingAppender2Test.java | 16 +- .../routing/JsonRoutingAppenderTest.java | 16 +- .../routing/PropertiesRoutingAppenderTest.java | 23 +- .../routing/RoutesScriptAppenderTest.java | 159 +++ .../appender/routing/RoutingAppenderTest.java | 11 +- .../routing/RoutingAppenderWithJndiTest.java | 6 +- .../routing/RoutingAppenderWithPurgingTest.java | 45 +- .../routing/RoutingDefaultAppenderTest.java | 32 +- .../AbstractAsyncThreadContextTestBase.java | 188 ++++ .../async/AsyncLoggerClassLoadDeadlock.java | 32 + .../async/AsyncLoggerClassLoadDeadlockTest.java | 45 + .../log4j/core/async/AsyncLoggerConfigTest.java | 8 +- ...oggerConfigThreadContextCopyOnWriteTest.java | 26 + ...yncLoggerConfigThreadContextDefaultTest.java | 26 + ...oggerConfigThreadContextGarbageFreeTest.java | 26 + .../core/async/AsyncLoggerTestNanoTime.java | 2 +- ...AsyncLoggerThreadContextCopyOnWriteTest.java | 40 + .../AsyncLoggerThreadContextDefaultTest.java | 40 + ...AsyncLoggerThreadContextGarbageFreeTest.java | 40 + .../async/AsyncQueueFullPolicyFactoryTest.java | 4 +- .../async/DefaultAsyncQueueFullPolicyTest.java | 10 +- .../DiscardingAsyncQueueFullPolicyTest.java | 30 +- .../core/async/RingBufferLogEventTest.java | 41 +- .../core/async/perftest/AbstractRunQueue.java | 91 ++ .../core/async/perftest/PerfTestDriver.java | 4 +- .../core/async/perftest/ResponseTimeTest.java | 43 +- .../core/async/perftest/RunConversant.java | 31 + .../log4j/core/async/perftest/RunJCTools.java | 32 + .../core/async/perftest/SimplePerfTest.java | 28 +- .../core/config/AbstractLog4j2_1100Test.java | 136 +-- .../config/AppenderControlArraySetTest.java | 12 +- .../core/config/CompositeConfigurationTest.java | 74 +- .../log4j/core/config/ConfigurationTest.java | 8 +- .../log4j/core/config/ConfiguratorTest.java | 91 +- .../core/config/CustomConfigurationTest.java | 16 +- .../log4j/core/config/LoggerConfigTest.java | 102 ++ .../core/config/MissingRootLoggerTest.java | 2 +- .../logging/log4j/core/config/PropertyTest.java | 85 ++ .../log4j/core/config/TestConfigurator.java | 44 +- .../core/config/TestConfiguratorError.java | 13 +- .../logging/log4j/core/config/XIncludeTest.java | 2 +- .../builder/ConfigurationAssemblerTest.java | 48 +- .../builder/ConfigurationBuilderTest.java | 99 ++ .../builder/CustomConfigurationFactory.java | 24 +- .../plugins/util/PluginManagerPackagesTest.java | 12 +- .../util/ResolverUtilCustomProtocolTest.java | 210 ++++ .../config/plugins/util/ResolverUtilTest.java | 132 ++- .../AbstractPluginWithGenericBuilder.java | 59 + .../PluginWithGenericSubclassFoo1Builder.java | 71 ++ .../plugins/validation/ValidatingPlugin.java | 2 +- .../ValidatingPluginWithGenericBuilder.java | 75 ++ .../ValidatingPluginWithTypedBuilder.java | 70 ++ .../validators/RequiredValidatorTest.java | 1 + .../ValidatingPluginWithGenericBuilderTest.java | 66 ++ ...luginWithGenericSubclassFoo1BuilderTest.java | 68 ++ .../ValidatingPluginWithTypedBuilderTest.java | 71 ++ ...opertiesConfigurationRootLoggerOnlyTest.java | 10 +- .../properties/PropertiesConfigurationTest.java | 10 +- .../properties/RollingFilePropertiesTest.java | 10 +- .../core/config/xml/XmlLoggerPropsTest.java | 8 +- .../log4j/core/filter/AbstractFilterTest.java | 88 ++ .../core/filter/AbstractFilterableTest.java | 287 +++++ .../core/filter/AbstractScriptFilterTest.java | 8 +- .../log4j/core/filter/BurstFilterTest.java | 283 +++-- .../core/filter/DynamicThresholdFilterTest.java | 47 +- .../log4j/core/filter/LevelRangeFilterTest.java | 9 + ...actoryPropertySetMissingConstructorTest.java | 41 + .../impl/ContextDataFactoryPropertySetTest.java | 49 + .../log4j/core/impl/ContextDataFactoryTest.java | 47 + .../log4j/core/impl/FactoryTestStringMap.java | 104 ++ ...ctoryTestStringMapWithoutIntConstructor.java | 100 ++ .../core/impl/JdkMapAdapterStringMapTest.java | 883 +++++++++++++++ .../core/impl/Log4jLogEventNanoTimeTest.java | 2 +- .../log4j/core/impl/Log4jLogEventTest.java | 96 +- .../log4j/core/impl/MutableLogEventTest.java | 42 +- .../impl/NestedLoggingFromToStringTest.java | 132 +++ .../core/impl/ReusableLogEventFactoryTest.java | 42 +- .../core/impl/ThrowableFormatOptionsTest.java | 211 +++- .../log4j/core/impl/ThrowableProxyTest.java | 62 +- .../log4j/core/jackson/LevelMixInJsonTest.java | 2 +- .../jackson/StackTraceElementMixInTest.java | 3 +- .../core/layout/AbstractStringLayoutTest.java | 72 ++ .../core/layout/CsvLogEventLayoutTest.java | 342 +++--- .../layout/CsvParameterLayoutAllAsyncTest.java | 7 +- .../core/layout/CsvParameterLayoutTest.java | 345 +++--- .../log4j/core/layout/GelfLayoutTest.java | 18 +- .../log4j/core/layout/HtmlLayoutTest.java | 9 +- .../log4j/core/layout/JsonLayoutTest.java | 96 +- .../log4j/core/layout/Log4j2_1482_CoreTest.java | 36 + .../log4j/core/layout/Log4j2_1482_Test.java | 89 ++ .../log4j/core/layout/LogEventFixtures.java | 10 +- .../layout/PatternLayoutLookupDateTest.java | 44 + .../layout/PatternLayoutMainMapLookupTest.java | 128 +-- .../layout/PatternLayoutNoLookupDateTest.java | 42 + .../log4j/core/layout/PatternLayoutTest.java | 35 +- .../log4j/core/layout/PatternSelectorTest.java | 130 +-- .../log4j/core/layout/Rfc5424LayoutTest.java | 25 +- .../log4j/core/layout/SerializedLayoutTest.java | 9 +- .../core/layout/SpyByteBufferDestination.java | 2 +- .../core/layout/StringBuilderEncoderTest.java | 6 +- .../log4j/core/layout/SyslogLayoutTest.java | 11 +- .../log4j/core/layout/XmlLayoutTest.java | 68 +- .../log4j/core/layout/YamlLayoutTest.java | 64 +- .../log4j/core/lookup/Log4jLookupTest.java | 33 +- .../core/lookup/Log4jLookupWithSpacesTest.java | 35 +- .../lookup/MainInputArgumentsLookupTest.java | 11 +- .../lookup/MainInputArgumentsMapLookup.java | 2 +- .../core/lookup/ResourceBundleLookupTest.java | 4 +- .../log4j/core/net/SocketReconnectTest.java | 12 +- .../core/net/mock/MockUdpSyslogServer.java | 6 +- .../net/server/AbstractSocketServerTest.java | 30 +- .../core/net/server/SslXmlSocketServerTest.java | 23 +- .../server/UdpSerializedSocketServerTest.java | 2 + .../core/net/ssl/KeyStoreConfigurationTest.java | 2 +- .../core/net/ssl/SslConfigurationTest.java | 4 +- .../net/ssl/TrustStoreConfigurationTest.java | 2 +- .../osgi/equinox/EquinoxLoadCoreBundleTest.java | 6 +- .../osgi/felix/FelixLoadCoreBundleTest.java | 4 + .../core/pattern/DatePatternConverterTest.java | 24 +- ...qualsIgnoreCaseReplacementConverterTest.java | 2 +- .../pattern/EqualsReplacementConverterTest.java | 2 +- .../core/pattern/HighlightConverterTest.java | 78 ++ .../core/pattern/MdcPatternConverterTest.java | 29 +- .../core/pattern/MessageJansiConverterTest.java | 62 ++ .../pattern/MessagePatternConverterTest.java | 17 +- .../pattern/MessageStyledConverterTest.java | 62 ++ .../core/pattern/NdcPatternConverterTest.java | 77 ++ .../log4j/core/pattern/NoConsoleNoAnsiTest.java | 4 +- .../log4j/core/pattern/PatternParserTest.java | 24 +- .../pattern/RegexReplacementConverterTest.java | 4 +- .../core/pattern/RegexReplacementTest.java | 23 +- .../SequenceNumberPatternConverterTest.java | 51 + .../log4j/core/pattern/StyleConverterTest.java | 4 +- ...riablesNotEmptyReplacementConverterTest.java | 2 +- .../log4j/core/util/CronExpressionTest.java | 32 +- .../logging/log4j/core/util/Profiler.java | 5 +- .../core/util/ShutdownCallbackRegistryTest.java | 2 +- .../logging/log4j/core/util/ThrowablesTest.java | 4 +- .../log4j/core/util/WatchManagerTest.java | 20 +- .../core/util/datetime/FixedDateFormatTest.java | 35 +- .../junit/AbstractExternalFileCleaner.java | 151 +++ .../apache/logging/log4j/junit/CleanFiles.java | 62 +- .../logging/log4j/junit/CleanFolders.java | 76 ++ .../logging/log4j/junit/LoggerContextRule.java | 216 ++-- .../junit/URLStreamHandlerFactoryRule.java | 97 ++ ...MutableLogEventWithReusableParamMsgTest.java | 53 + .../logging/log4j/test/ExtendedLevels.java | 2 +- .../log4j/test/appender/AlwaysFailAppender.java | 3 +- .../log4j/test/appender/BlockingAppender.java | 18 +- .../log4j/test/appender/DeadlockAppender.java | 12 +- .../test/appender/EncodingListAppender.java | 12 +- .../log4j/test/appender/FailOnceAppender.java | 3 +- .../log4j/test/appender/InMemoryAppender.java | 7 +- .../log4j/test/appender/ListAppender.java | 93 +- .../test/appender/UsesLoggingAppender.java | 3 +- .../logging/log4j/test/layout/BasicLayout.java | 6 +- .../AsyncLoggerConfigThreadContextTest.xml | 50 + .../test/resources/AsyncLoggerConsoleTest.xml | 16 + .../resources/AsyncLoggerThreadContextTest.xml | 8 +- .../BlockingQueueFactory-ArrayBlockingQueue.xml | 40 + ...ckingQueueFactory-DisruptorBlockingQueue.xml | 40 + ...lockingQueueFactory-JCToolsBlockingQueue.xml | 40 + ...BlockingQueueFactory-LinkedTransferQueue.xml | 40 + .../src/test/resources/JeroMqAppenderTest.xml | 62 +- .../SequenceNumberPatternConverterTest.yml | 15 + .../src/test/resources/configPropertyTest.xml | 38 + log4j-core/src/test/resources/gcFreeLogging.xml | 17 +- .../resources/gcFreeMixedSyncAsyncLogging.xml | 20 +- .../src/test/resources/log4j-advertiser.xml | 4 +- .../log4j-appender-selector-groovy.xml | 35 + .../log4j-appender-selector-javascript.xml | 35 + .../test/resources/log4j-asynch-queue-full.xml | 4 +- .../log4j-comp-logger-attr-override.json | 38 + .../test/resources/log4j-comp-logger-root.xml | 44 + .../src/test/resources/log4j-comp-logger.json | 8 +- .../test/resources/log4j-comp-root-loggers.xml | 46 + log4j-core/src/test/resources/log4j-console.xml | 29 + .../src/test/resources/log4j-customLevel.xml | 7 +- .../test/resources/log4j-cvs-json-parameter.xml | 32 + log4j-core/src/test/resources/log4j-empty.xml | 20 + .../src/test/resources/log4j-list-nolookups.xml | 29 + .../src/test/resources/log4j-loggerprops.xml | 4 +- .../src/test/resources/log4j-message-ansi.xml | 34 + .../src/test/resources/log4j-message-styled.xml | 34 + .../test/resources/log4j-rolling-7z-lazy.xml | 59 + .../src/test/resources/log4j-rolling-7z.xml | 58 + .../test/resources/log4j-rolling-bzip2-lazy.xml | 60 + .../resources/log4j-rolling-cron-once-a-day.xml | 47 + .../src/test/resources/log4j-rolling-cron.xml | 2 +- .../src/test/resources/log4j-rolling-cron2.xml | 2 +- .../resources/log4j-rolling-deflate-lazy.xml | 60 + .../test/resources/log4j-rolling-gz-lazy.xml | 59 + .../resources/log4j-rolling-pack200-lazy.xml | 60 + .../test/resources/log4j-rolling-xz-lazy.xml | 60 + .../test/resources/log4j-rolling-zip-lazy.xml | 60 + .../src/test/resources/log4j-rolling.properties | 24 +- ...og4j-routing-default-route-script-groovy.xml | 40 + ...-routing-default-route-script-javascript.xml | 40 + .../log4j-routing-routes-script-groovy.xml | 40 + .../log4j-routing-routes-script-javascript.xml | 40 + .../log4j-routing-script-staticvars-groovy.xml | 50 + ...g4j-routing-script-staticvars-javascript.xml | 50 + log4j-core/src/test/resources/log4j-style.xml | 4 +- .../src/test/resources/log4j-sync-to-list.xml | 35 + .../resources/log4j-test-shutdownTimeout.xml | 38 + log4j-core/src/test/resources/log4j-test4.xml | 36 + log4j-core/src/test/resources/log4j-test5.xml | 36 + log4j-core/src/test/resources/log4j2-1482.xml | 27 + log4j-core/src/test/resources/log4j2-1573.xml | 12 + .../test/resources/log4j2-console-msg-ansi.xml | 31 + .../log4j2-console-xex-ansi-custom.xml | 31 + .../resources/log4j2-console-xex-ansi-kirk.xml | 31 + .../test/resources/log4j2-console-xex-ansi.xml | 31 + .../test/resources/log4j2-properties.properties | 1 + log4j-distribution/.gitignore | 2 - log4j-distribution/pom.xml | 24 +- log4j-flume-ng/.gitignore | 4 - log4j-flume-ng/pom.xml | 3 +- .../flume/appender/AbstractFlumeManager.java | 2 +- .../log4j/flume/appender/FlumeAppender.java | 56 +- .../log4j/flume/appender/FlumeAvroManager.java | 6 +- .../flume/appender/FlumeEmbeddedManager.java | 554 +++++----- .../log4j/flume/appender/FlumeEvent.java | 10 + .../log4j/flume/appender/FlumeEventFactory.java | 3 +- .../flume/appender/FlumePersistentManager.java | 90 +- .../log4j/flume/appender/FlumeAppenderTest.java | 50 +- .../flume/appender/FlumeEmbeddedAgentTest.java | 4 +- .../appender/FlumeEmbeddedAppenderTest.java | 4 +- .../appender/FlumePersistentAppenderTest.java | 4 +- .../flume/appender/FlumePersistentPerf.java | 4 +- log4j-iostreams/.gitignore | Bin 69 -> 0 bytes log4j-iostreams/pom.xml | 6 +- .../io/AbstractLoggerOutputStreamTest.java | 15 +- .../log4j/io/AbstractLoggerWriterTest.java | 15 +- log4j-jcl/.gitignore | 4 - log4j-jcl/pom.xml | 2 +- .../apache/logging/log4j/jcl/LoggerTest.java | 130 +-- log4j-jmx-gui/.gitignore | 4 - log4j-jmx-gui/pom.xml | 3 +- log4j-jul/.gitignore | 3 - log4j-jul/pom.xml | 3 +- .../org/apache/logging/log4j/jul/Constants.java | 1 + .../logging/log4j/jul/CoreLoggerAdapter.java | 7 +- .../logging/log4j/jul/AbstractLoggerTest.java | 4 +- log4j-liquibase/.gitignore | 3 - log4j-liquibase/pom.xml | 2 +- .../ext/logging/log4j2/LoggingTest.java | 12 +- log4j-nosql/.gitignore | 4 - log4j-nosql/pom.xml | 13 +- .../log4j/nosql/appender/NoSqlAppender.java | 3 +- .../nosql/appender/NoSqlDatabaseManager.java | 7 +- .../nosql/appender/couchdb/CouchDbProvider.java | 4 +- .../nosql/appender/mongodb/MongoDbProvider.java | 10 +- .../log4j/nosql/appender/NoSqlAppenderTest.java | 30 +- .../appender/NoSqlDatabaseManagerTest.java | 434 +++----- log4j-perf/.gitignore | 4 - log4j-perf/perf.txt | 23 - log4j-perf/pom.xml | 10 +- .../log4j/ThreadContextBenchmarkAccess.java | 34 + .../message/ParameterFormatterBenchmark.java | 40 +- ...ractStringLayoutStringEncodingBenchmark.java | 34 +- .../perf/jmh/AsyncAppenderLog4j2Benchmark.java | 37 +- .../AsyncAppenderLog4j2LocationBenchmark.java | 25 +- .../perf/jmh/AsyncAppenderLogbackBenchmark.java | 1 - .../AsyncAppenderLogbackLocationBenchmark.java | 2 - .../perf/jmh/AsyncLoggersLocationBenchmark.java | 2 - .../log4j/perf/jmh/CollectionsBenchmark.java | 12 +- .../log4j/perf/jmh/FileAppenderBenchmark.java | 10 +- .../perf/jmh/FileAppenderParamsBenchmark.java | 10 +- .../log4j/perf/jmh/JdbcAppenderBenchmark.java | 4 +- .../log4j/perf/jmh/JpaAppenderBenchmark.java | 4 +- .../jmh/Log4j2AppenderComparisonBenchmark.java | 24 +- .../log4j/perf/jmh/LoggerConfigBenchmark.java | 2 +- .../log4j/perf/jmh/MDCFilterBenchmark.java | 14 +- .../jmh/MemoryHandlerJULLocationBenchmark.java | 4 +- .../perf/jmh/ParameterizedMessageBenchmark.java | 2 +- .../ParameterizedMessageInliningBenchmark.java | 20 +- .../jmh/PatternLayoutComparisonBenchmark.java | 2 +- .../perf/jmh/SortedArrayVsHashMapBenchmark.java | 239 ++++ .../log4j/perf/jmh/StringEncodingBenchmark.java | 30 +- .../perf/jmh/TextEncoderHelperBenchmark.java | 12 +- .../log4j/perf/jmh/ThreadContextBenchmark.java | 201 ++++ ...ThreadLocalVsConcurrentHashMapBenchmark.java | 6 +- .../perf/jmh/ThreadLocalVsPoolBenchmark.java | 16 +- .../perf/jmh/ThreadsafeDateFormatBenchmark.java | 10 +- .../logging/log4j/perf/jmh/UnboxBenchmark.java | 91 ++ .../log4j/perf/jmh/VarargsBenchmark.java | 6 +- .../logging/log4j/perf/nogc/AbstractLogger.java | 6 +- .../logging/log4j/perf/nogc/ClassicLogger.java | 2 +- .../logging/log4j/perf/nogc/DemoAppender.java | 12 +- .../logging/log4j/perf/nogc/NoGcLayout.java | 16 +- .../logging/log4j/perf/nogc/NoGcLogger.java | 2 +- .../logging/log4j/perf/nogc/NoGcMessage.java | 10 +- .../log4j/perf/nogc/OpenHashStringMap.java | 938 ++++++++++++++++ .../log4j/perf/nogc/ParameterizedMessage.java | 6 +- .../apache/logging/log4j/perf/nogc/Test.java | 24 +- .../logging/log4j/perf/util/DemoAppender.java | 10 +- .../CopyOnWriteOpenHashMapThreadContextMap.java | 46 + .../GarbageFreeOpenHashMapThreadContextMap.java | 49 + .../resources/log4j2-appenderComparison.xml | 6 + .../perf5AsyncApndDsrptrNoLoc-noOpAppender.xml | 32 + ...perf5AsyncApndDsrptrWithLoc-noOpAppender.xml | 32 + .../perf5AsyncApndMpscQNoLoc-noOpAppender.xml | 32 + .../perf5AsyncApndMpscQWithLoc-noOpAppender.xml | 32 + .../perf5AsyncApndNoLoc-noOpAppender.xml | 1 + .../perf5AsyncApndXferQNoLoc-noOpAppender.xml | 32 + .../perf5AsyncApndXferQWithLoc-noOpAppender.xml | 32 + log4j-samples/.gitignore | 5 - log4j-samples/configuration/pom.xml | 2 +- .../configuration/CustomConfiguration.java | 13 +- .../CustomConfigurationFactory.java | 12 +- log4j-samples/flume-common/pom.xml | 2 +- log4j-samples/flume-embedded/pom.xml | 2 +- log4j-samples/flume-remote/pom.xml | 2 +- log4j-samples/loggerProperties/pom.xml | 2 +- .../logging/log4j/lookup/CustomLookup.java | 8 +- .../logging/log4j/lookup/CustomMapMessage.java | 2 +- .../logging/log4j/lookup/MapMessageLookup.java | 10 +- .../logging/log4j/CustomPropertiesTest.java | 8 +- log4j-samples/pom.xml | 3 +- log4j-samples/scala-api/.gitignore | 3 + log4j-samples/scala-api/pom.xml | 65 ++ .../scala-api/src/main/resources/log4j2.xml | 32 + .../logging/log4j/scalasample/LoggingApp.scala | 47 + log4j-slf4j-impl/.gitignore | 4 - log4j-slf4j-impl/pom.xml | 7 +- .../org/apache/logging/slf4j/Log4j1222Test.java | 1 - .../logging/slf4j/Log4j2_1482_Slf4jTest.java | 41 + .../org/apache/logging/slf4j/LoggerTest.java | 364 +++---- .../org/apache/logging/slf4j/OptionalTest.java | 138 +-- .../src/test/resources/log4j2-1482.xml | 27 + log4j-taglib/.gitignore | 4 - log4j-taglib/pom.xml | 2 +- .../log4j/taglib/Log4jTaglibLoggerContext.java | 4 +- log4j-to-slf4j/.gitignore | 4 - log4j-to-slf4j/pom.xml | 2 +- .../org/apache/logging/slf4j/MDCContextMap.java | 33 +- .../logging/slf4j/SLF4JLoggerContext.java | 4 +- log4j-web/.gitignore | 4 - log4j-web/pom.xml | 7 +- .../log4j/web/Log4jServletContextListener.java | 42 +- .../log4j/web/Log4jWebInitializerImpl.java | 550 +++++----- .../log4j/web/ServletRequestThreadContext.java | 24 +- .../org/apache/logging/log4j/web/WebLookup.java | 8 - .../log4j/web/appender/ServletAppender.java | 104 +- log4j-web/src/site/xdoc/index.xml | 16 - .../Log4jServletContainerInitializerTest.java | 164 ++- .../web/Log4jServletContextListenerTest.java | 58 +- .../log4j/web/Log4jServletFilterTest.java | 114 +- .../log4j/web/Log4jWebInitializerImplTest.java | 367 ++----- .../logging/log4j/web/ServletAppenderTest.java | 1 + .../resources/WEB-INF/classes/log4j-servlet.xml | 64 +- pom.xml | 127 ++- src/changes/announcement.vm | 50 +- src/changes/changes.xml | 451 +++++++- src/site/apt/download.apt.vm | 15 + .../resources/images/IntelliJ-IDEA-logo.png | Bin 0 -> 4299 bytes src/site/resources/images/logo.png | Bin 0 -> 36964 bytes src/site/resources/logo/logo-3d-green-bg-2.png | Bin 0 -> 33619 bytes src/site/resources/logo/logo-3d-green-bg-2.xcf | Bin 0 -> 58311 bytes src/site/resources/logo/logo-3d-green-bg.png | Bin 0 -> 32865 bytes src/site/resources/logo/logo-3d-green-bg.xcf | Bin 0 -> 58333 bytes src/site/resources/logo/logo-big-blue.png | Bin 0 -> 30347 bytes src/site/resources/logo/logo-big-blue.xcf | Bin 0 -> 55133 bytes src/site/resources/logo/logo-blue-web-r2.6.png | Bin 0 -> 38268 bytes src/site/resources/logo/logo-blue-web-r2.6.xcf | Bin 0 -> 64192 bytes src/site/resources/logo/logo-blue-web.png | Bin 0 -> 35254 bytes src/site/resources/logo/logo-blue-web.xcf | Bin 0 -> 63386 bytes .../resources/logo/logo-chocolate-swirl-2.png | Bin 0 -> 31842 bytes .../resources/logo/logo-chocolate-swirl-2.xcf | Bin 0 -> 58254 bytes .../resources/logo/logo-chocolate-swirl.png | Bin 0 -> 34753 bytes .../resources/logo/logo-chocolate-swirl.xcf | Bin 0 -> 64646 bytes src/site/resources/logo/logo-craters-2.png | Bin 0 -> 30522 bytes src/site/resources/logo/logo-craters-2.xcf | Bin 0 -> 58393 bytes src/site/resources/logo/logo-craters.png | Bin 0 -> 32590 bytes src/site/resources/logo/logo-craters.xcf | Bin 0 -> 58716 bytes src/site/resources/logo/logo-electric-blue.png | Bin 0 -> 31853 bytes src/site/resources/logo/logo-electric-blue.xcf | Bin 0 -> 58321 bytes src/site/resources/logo/logo-granite-2.png | Bin 0 -> 33714 bytes src/site/resources/logo/logo-granite-2.xcf | Bin 0 -> 58695 bytes src/site/resources/logo/logo-granite.png | Bin 0 -> 31959 bytes src/site/resources/logo/logo-granite.xcf | Bin 0 -> 58354 bytes src/site/resources/logo/logo-ice.png | Bin 0 -> 33947 bytes src/site/resources/logo/logo-ice.xcf | Bin 0 -> 64835 bytes src/site/resources/logo/logo-java-1.png | Bin 0 -> 33698 bytes src/site/resources/logo/logo-java-1.xcf | Bin 0 -> 58663 bytes src/site/resources/logo/logo-java-2-2.6.2.png | Bin 0 -> 40736 bytes src/site/resources/logo/logo-java-2-2.6.2.xcf | Bin 0 -> 66719 bytes src/site/resources/logo/logo-java-2.png | Bin 0 -> 36999 bytes src/site/resources/logo/logo-java-2.xcf | Bin 0 -> 64767 bytes src/site/resources/logo/logo-java-3.png | Bin 0 -> 33016 bytes src/site/resources/logo/logo-java-3.xcf | Bin 0 -> 58335 bytes src/site/resources/logo/logo-leather-2.png | Bin 0 -> 33766 bytes src/site/resources/logo/logo-leather-2.xcf | Bin 0 -> 58757 bytes src/site/resources/logo/logo-leather.png | Bin 0 -> 32668 bytes src/site/resources/logo/logo-leather.xcf | Bin 0 -> 58406 bytes .../resources/logo/logo-lightning-2.6.1.png | Bin 0 -> 41622 bytes .../resources/logo/logo-lightning-2.6.1.xcf | Bin 0 -> 65630 bytes src/site/resources/logo/logo-lightning.png | Bin 0 -> 38593 bytes src/site/resources/logo/logo-lightning.xcf | Bin 0 -> 64749 bytes src/site/resources/logo/logo-marble-1.png | Bin 0 -> 33208 bytes src/site/resources/logo/logo-marble-1.xcf | Bin 0 -> 64833 bytes src/site/resources/logo/logo-paper-1.png | Bin 0 -> 33016 bytes src/site/resources/logo/logo-paper-1.xcf | Bin 0 -> 58337 bytes src/site/resources/logo/logo-paper-2.png | Bin 0 -> 33082 bytes src/site/resources/logo/logo-paper-2.xcf | Bin 0 -> 58324 bytes src/site/resources/logo/logo-parque-1.png | Bin 0 -> 33676 bytes src/site/resources/logo/logo-parque-1.xcf | Bin 0 -> 58334 bytes src/site/resources/logo/logo-parque-2.png | Bin 0 -> 32530 bytes src/site/resources/logo/logo-parque-2.xcf | Bin 0 -> 58370 bytes src/site/resources/logo/logo-parque-3.png | Bin 0 -> 32927 bytes src/site/resources/logo/logo-parque-3.xcf | Bin 0 -> 58348 bytes src/site/resources/logo/logo-pastel-stuff-2.png | Bin 0 -> 33441 bytes src/site/resources/logo/logo-pastel-stuff-2.xcf | Bin 0 -> 58354 bytes src/site/resources/logo/logo-pastel-stuff-3.png | Bin 0 -> 33194 bytes src/site/resources/logo/logo-pastel-stuff-3.xcf | Bin 0 -> 58367 bytes src/site/resources/logo/logo-pastel-stuff.png | Bin 0 -> 37102 bytes src/site/resources/logo/logo-pastel-stuff.xcf | Bin 0 -> 64784 bytes src/site/resources/logo/logo-pine.png | Bin 0 -> 28260 bytes src/site/resources/logo/logo-pine.xcf | Bin 0 -> 61254 bytes .../resources/logo/logo-pool-bottom-2.7.png | Bin 0 -> 36964 bytes src/site/resources/logo/logo-pool-bottom-bg.png | Bin 0 -> 31480 bytes src/site/resources/logo/logo-pool-bottom-bg.xcf | Bin 0 -> 58386 bytes src/site/resources/logo/logo-pool-bottom.png | Bin 0 -> 33961 bytes src/site/resources/logo/logo-pool-bottom.xcf | Bin 0 -> 64819 bytes src/site/resources/logo/logo-qbert.png | Bin 0 -> 34606 bytes src/site/resources/logo/logo-qbert.xcf | Bin 0 -> 64777 bytes src/site/resources/logo/logo-rain.png | Bin 0 -> 34527 bytes src/site/resources/logo/logo-rain.xcf | Bin 0 -> 64686 bytes src/site/resources/logo/logo-red-cubes.png | Bin 0 -> 32485 bytes src/site/resources/logo/logo-red-cubes.xcf | Bin 0 -> 58334 bytes src/site/resources/logo/logo-rocks.png | Bin 0 -> 39238 bytes src/site/resources/logo/logo-rocks.xcf | Bin 0 -> 64798 bytes src/site/resources/logo/logo-sky.png | Bin 0 -> 33307 bytes src/site/resources/logo/logo-sky.xcf | Bin 0 -> 64206 bytes src/site/resources/logo/logo-starfield.png | Bin 0 -> 30603 bytes src/site/resources/logo/logo-starfield.xcf | Bin 0 -> 56479 bytes src/site/resources/logo/logo-stone.png | Bin 0 -> 39696 bytes src/site/resources/logo/logo-stone.xcf | Bin 0 -> 64755 bytes src/site/resources/logo/logo-tree-bark.png | Bin 0 -> 40313 bytes src/site/resources/logo/logo-tree-bark.xcf | Bin 0 -> 64751 bytes src/site/resources/logo/logo-walnut.png | Bin 0 -> 35644 bytes src/site/resources/logo/logo-walnut.xcf | Bin 0 -> 64852 bytes src/site/resources/logo/logo-wood-1.png | Bin 0 -> 34322 bytes src/site/resources/logo/logo-wood-1.xcf | Bin 0 -> 64867 bytes src/site/resources/logo/logo-wood-2.png | Bin 0 -> 33795 bytes src/site/resources/logo/logo-wood-2.xcf | Bin 0 -> 64846 bytes src/site/resources/logo/logo-wood.png | Bin 0 -> 37241 bytes src/site/resources/logo/logo-wood.xcf | Bin 0 -> 64930 bytes src/site/resources/logo/logo.jpg | Bin 0 -> 14818 bytes src/site/site.vm | 8 +- src/site/site.xml | 21 +- src/site/xdoc/articles.xml | 100 +- src/site/xdoc/faq.xml | 71 +- src/site/xdoc/index.xml | 142 --- src/site/xdoc/index.xml.vm | 164 +++ src/site/xdoc/javadoc.xml | 4 + src/site/xdoc/manual/appenders.xml | 388 ++++++- src/site/xdoc/manual/async.xml | 13 +- src/site/xdoc/manual/configuration.xml.vm | 192 +++- src/site/xdoc/manual/customconfig.xml | 10 +- src/site/xdoc/manual/customloglevels.xml.vm | 6 + src/site/xdoc/manual/extending.xml | 153 ++- src/site/xdoc/manual/filters.xml | 19 +- src/site/xdoc/manual/garbagefree.xml | 47 +- src/site/xdoc/manual/index.xml | 2 +- src/site/xdoc/manual/layouts.xml.vm | 192 +++- src/site/xdoc/manual/lookups.xml | 18 +- src/site/xdoc/manual/messages.xml | 38 +- src/site/xdoc/manual/plugins.xml | 2 +- src/site/xdoc/manual/scala-api.xml | 91 ++ src/site/xdoc/manual/thread-context.xml | 16 + src/site/xdoc/manual/webapp.xml | 26 + src/site/xdoc/maven-artifacts.xml.vm | 32 + src/site/xdoc/runtime-dependencies.xml | 22 +- 1048 files changed, 46346 insertions(+), 16888 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/39e28336/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java ---------------------------------------------------------------------- diff --cc log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java index dab2c4e,ded641c..fdfc033 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java @@@ -55,9 -56,31 +56,18 @@@ public class KafkaManager extends Abstr } @Override - public void releaseSub() { + public boolean releaseSub(final long timeout, final TimeUnit timeUnit) { + if (timeout > 0) { + closeProducer(timeout, timeUnit); + } else { + closeProducer(timeoutMillis, TimeUnit.MILLISECONDS); + } + return true; + } + + private void closeProducer(final long timeout, final TimeUnit timeUnit) { if (producer != null) { - // This thread is a workaround for this Kafka issue: https://issues.apache.org/jira/browse/KAFKA-1660 - final Runnable task = new Runnable() { - @Override - public void run() { - if (producer != null) { - producer.close(); - } - } - }; - try { - getLoggerContext().submitDaemon(task).get(timeout, timeUnit); - } catch (InterruptedException | ExecutionException | TimeoutException e) { - // ignore - } + producer.close(timeoutMillis, TimeUnit.MILLISECONDS); } }
