diff --git a/config/log4j2.properties b/config/log4j2.properties
index 92acf87be41..c1fd6f242d7 100644
--- a/config/log4j2.properties
+++ b/config/log4j2.properties
@@ -4,7 +4,7 @@ name = LogstashPropertiesConfig
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.console.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.json_console.type = Console
appender.json_console.name = json_console
@@ -21,7 +21,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
@@ -64,7 +64,7 @@ appender.routing.pipeline.name = appender-${ctx:pipeline.id}
appender.routing.pipeline.fileName = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log
appender.routing.pipeline.filePattern = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz
appender.routing.pipeline.layout.type = PatternLayout
-appender.routing.pipeline.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.routing.pipeline.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.routing.pipeline.policy.type = SizeBasedTriggeringPolicy
appender.routing.pipeline.policy.size = 100MB
appender.routing.pipeline.strategy.type = DefaultRolloverStrategy
@@ -86,7 +86,7 @@ rootLogger.appenderRef.routing.ref = pipeline_routing_appender
appender.console_slowlog.type = Console
appender.console_slowlog.name = plain_console_slowlog
appender.console_slowlog.layout.type = PatternLayout
-appender.console_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.console_slowlog.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.json_console_slowlog.type = Console
appender.json_console_slowlog.name = json_console_slowlog
@@ -103,7 +103,7 @@ appender.rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling_slowlog.policies.time.interval = 1
appender.rolling_slowlog.policies.time.modulate = true
appender.rolling_slowlog.layout.type = PatternLayout
-appender.rolling_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.rolling_slowlog.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.rolling_slowlog.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling_slowlog.policies.size.size = 100MB
appender.rolling_slowlog.strategy.type = DefaultRolloverStrategy
@@ -148,7 +148,7 @@ appender.deprecation_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.deprecation_rolling.policies.time.interval = 1
appender.deprecation_rolling.policies.time.modulate = true
appender.deprecation_rolling.layout.type = PatternLayout
-appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.deprecation_rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.deprecation_rolling.policies.size.size = 100MB
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
diff --git a/docker/data/logstash/config/log4j2.file.properties b/docker/data/logstash/config/log4j2.file.properties
index 234b23db45e..be977338908 100644
--- a/docker/data/logstash/config/log4j2.file.properties
+++ b/docker/data/logstash/config/log4j2.file.properties
@@ -4,7 +4,7 @@ name = LogstashPropertiesConfig
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.console.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.json_console.type = Console
appender.json_console.name = json_console
@@ -21,7 +21,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
@@ -52,7 +52,7 @@ appender.routing.pipeline.name = appender-${ctx:pipeline.id}
appender.routing.pipeline.fileName = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log
appender.routing.pipeline.filePattern = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz
appender.routing.pipeline.layout.type = PatternLayout
-appender.routing.pipeline.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.routing.pipeline.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.routing.pipeline.policy.type = SizeBasedTriggeringPolicy
appender.routing.pipeline.policy.size = 100MB
appender.routing.pipeline.strategy.type = DefaultRolloverStrategy
@@ -68,7 +68,7 @@ rootLogger.appenderRef.routing.ref = pipeline_routing_appender
appender.console_slowlog.type = Console
appender.console_slowlog.name = plain_console_slowlog
appender.console_slowlog.layout.type = PatternLayout
-appender.console_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.console_slowlog.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.json_console_slowlog.type = Console
appender.json_console_slowlog.name = json_console_slowlog
@@ -130,7 +130,7 @@ appender.deprecation_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.deprecation_rolling.policies.time.interval = 1
appender.deprecation_rolling.policies.time.modulate = true
appender.deprecation_rolling.layout.type = PatternLayout
-appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.deprecation_rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.deprecation_rolling.policies.size.size = 100MB
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
diff --git a/docker/data/logstash/config/log4j2.properties b/docker/data/logstash/config/log4j2.properties
index 663a0158034..d6e62d5778e 100644
--- a/docker/data/logstash/config/log4j2.properties
+++ b/docker/data/logstash/config/log4j2.properties
@@ -4,7 +4,7 @@ name = LogstashPropertiesConfig
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.console.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.json_console.type = Console
appender.json_console.name = json_console
diff --git a/docs/reference/getting-started-with-logstash.md b/docs/reference/getting-started-with-logstash.md
index d3ee34baf16..0748de0fc05 100644
--- a/docs/reference/getting-started-with-logstash.md
+++ b/docs/reference/getting-started-with-logstash.md
@@ -110,7 +110,7 @@ In the `config/log4j2.properties`:
appender.routing.pipeline.fileName = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log
appender.routing.pipeline.filePattern = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz
appender.routing.pipeline.layout.type = PatternLayout
- appender.routing.pipeline.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+ appender.routing.pipeline.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.routing.pipeline.policy.type = SizeBasedTriggeringPolicy
appender.routing.pipeline.policy.size = 100MB
appender.routing.pipeline.strategy.type = DefaultRolloverStrategy
diff --git a/docs/reference/logging.md b/docs/reference/logging.md
index 90df52d0409..5cda278d5c7 100644
--- a/docs/reference/logging.md
+++ b/docs/reference/logging.md
@@ -64,7 +64,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy <4>
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy <5>
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
diff --git a/logstash-core/benchmarks/src/main/resources/log4j2-with-script.properties b/logstash-core/benchmarks/src/main/resources/log4j2-with-script.properties
index 52a61d10d4c..dc49f0b3e1e 100644
--- a/logstash-core/benchmarks/src/main/resources/log4j2-with-script.properties
+++ b/logstash-core/benchmarks/src/main/resources/log4j2-with-script.properties
@@ -10,7 +10,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %-.10000m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %-.10000m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
@@ -24,7 +24,7 @@ appender.routing.pipeline.name = appender-${ctx:pipeline.id}
appender.routing.pipeline.fileName = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log
appender.routing.pipeline.filePattern = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz
appender.routing.pipeline.layout.type = PatternLayout
-appender.routing.pipeline.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.routing.pipeline.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.routing.pipeline.policy.type = SizeBasedTriggeringPolicy
appender.routing.pipeline.policy.size = 100MB
appender.routing.pipeline.strategy.type = DefaultRolloverStrategy
diff --git a/logstash-core/benchmarks/src/main/resources/log4j2-without-script.properties b/logstash-core/benchmarks/src/main/resources/log4j2-without-script.properties
index 959f65e0dd4..f851583ab4e 100644
--- a/logstash-core/benchmarks/src/main/resources/log4j2-without-script.properties
+++ b/logstash-core/benchmarks/src/main/resources/log4j2-without-script.properties
@@ -10,7 +10,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %-.10000m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %-.10000m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
diff --git a/logstash-core/src/main/java/org/logstash/log/PipelineRoutingAppender.java b/logstash-core/src/main/java/org/logstash/log/PipelineRoutingAppender.java
index ba54ed60a8c..1d15d1fb8c6 100644
--- a/logstash-core/src/main/java/org/logstash/log/PipelineRoutingAppender.java
+++ b/logstash-core/src/main/java/org/logstash/log/PipelineRoutingAppender.java
@@ -31,7 +31,7 @@
* fileName="${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log"
* filePattern="${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz">
*
- * [%d{ISO8601}][%-5p][%-25c] %m%n
+ * [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
*
*
*
diff --git a/logstash-core/src/test/resources/log4j2-log-deprecation-test.properties b/logstash-core/src/test/resources/log4j2-log-deprecation-test.properties
index 6794c96e102..696c4cf1ba8 100644
--- a/logstash-core/src/test/resources/log4j2-log-deprecation-test.properties
+++ b/logstash-core/src/test/resources/log4j2-log-deprecation-test.properties
@@ -11,7 +11,7 @@ appender.deprecation_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.deprecation_rolling.policies.time.interval = 1
appender.deprecation_rolling.policies.time.modulate = true
appender.deprecation_rolling.layout.type = PatternLayout
-appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %m%n
+appender.deprecation_rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]} %m%n
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.deprecation_rolling.policies.size.size = 100MB
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
diff --git a/logstash-core/src/test/resources/log4j2-log-pipeline-test.properties b/logstash-core/src/test/resources/log4j2-log-pipeline-test.properties
index 6c24ef2de66..0e91412ab63 100644
--- a/logstash-core/src/test/resources/log4j2-log-pipeline-test.properties
+++ b/logstash-core/src/test/resources/log4j2-log-pipeline-test.properties
@@ -10,7 +10,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{plugin.name}]} %-.10000m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{plugin.name}]} %-.10000m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
diff --git a/qa/integration/fixtures/persistent_queues/log4j2.properties b/qa/integration/fixtures/persistent_queues/log4j2.properties
index 3bc313e0367..5dfdce58bec 100644
--- a/qa/integration/fixtures/persistent_queues/log4j2.properties
+++ b/qa/integration/fixtures/persistent_queues/log4j2.properties
@@ -4,7 +4,7 @@ name = LogstashPropertiesConfig
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.console.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.json_console.type = Console
appender.json_console.name = json_console
@@ -21,7 +21,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.layout.type = PatternLayout
-appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
@@ -52,7 +52,7 @@ appender.routing.pipeline.name = appender-${ctx:pipeline.id}
appender.routing.pipeline.fileName = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.log
appender.routing.pipeline.filePattern = ${sys:ls.logs}/pipeline_${ctx:pipeline.id}.%i.log.gz
appender.routing.pipeline.layout.type = PatternLayout
-appender.routing.pipeline.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.routing.pipeline.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.routing.pipeline.policy.type = SizeBasedTriggeringPolicy
appender.routing.pipeline.policy.size = 100MB
appender.routing.pipeline.strategy.type = DefaultRolloverStrategy
@@ -68,7 +68,7 @@ rootLogger.appenderRef.routing.ref = pipeline_routing_appender
appender.console_slowlog.type = Console
appender.console_slowlog.name = plain_console_slowlog
appender.console_slowlog.layout.type = PatternLayout
-appender.console_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.console_slowlog.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.json_console_slowlog.type = Console
appender.json_console_slowlog.name = json_console_slowlog
@@ -85,7 +85,7 @@ appender.rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling_slowlog.policies.time.interval = 1
appender.rolling_slowlog.policies.time.modulate = true
appender.rolling_slowlog.layout.type = PatternLayout
-appender.rolling_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
+appender.rolling_slowlog.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c] %m%n
appender.json_rolling_slowlog.type = RollingFile
appender.json_rolling_slowlog.name = json_rolling_slowlog
@@ -115,7 +115,7 @@ appender.deprecation_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.deprecation_rolling.policies.time.interval = 1
appender.deprecation_rolling.policies.time.modulate = true
appender.deprecation_rolling.layout.type = PatternLayout
-appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
+appender.deprecation_rolling.layout.pattern = [%d{ISO8601_OFFSET_DATE_TIME_HHCMM}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.deprecation_rolling.policies.size.size = 100MB
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy