diff --git a/hadoop-hdds/framework/pom.xml b/hadoop-hdds/framework/pom.xml
index c26e63c8f754..dfeb5589dbab 100644
--- a/hadoop-hdds/framework/pom.xml
+++ b/hadoop-hdds/framework/pom.xml
@@ -260,6 +260,11 @@
disruptor
runtime
+
+ log4j
+ apache-log4j-extras
+ runtime
+
diff --git a/hadoop-ozone/dist/src/main/license/bin/LICENSE.txt b/hadoop-ozone/dist/src/main/license/bin/LICENSE.txt
index 63010a1b61bc..3b3e1b043ed6 100644
--- a/hadoop-ozone/dist/src/main/license/bin/LICENSE.txt
+++ b/hadoop-ozone/dist/src/main/license/bin/LICENSE.txt
@@ -363,6 +363,7 @@ Apache License 2.0
jakarta.validation:jakarta.validation-api
javax.enterprise:cdi-api
javax.inject:javax.inject
+ log4j:apache-log4j-extras
net.java.dev.jna:jna
net.java.dev.jna:jna-platform
org.apache.commons:commons-compress
diff --git a/hadoop-ozone/dist/src/main/license/jar-report.txt b/hadoop-ozone/dist/src/main/license/jar-report.txt
index 12019399d9b2..dddc45c0d965 100644
--- a/hadoop-ozone/dist/src/main/license/jar-report.txt
+++ b/hadoop-ozone/dist/src/main/license/jar-report.txt
@@ -2,6 +2,7 @@ share/ozone/lib/aircompressor.jar
share/ozone/lib/animal-sniffer-annotations.jar
share/ozone/lib/annotations.jar
share/ozone/lib/annotations.jar
+share/ozone/lib/apache-log4j-extras.jar
share/ozone/lib/aopalliance.jar
share/ozone/lib/aopalliance-repackaged.jar
share/ozone/lib/asm-analysis.jar
diff --git a/hadoop-ozone/dist/src/shell/conf/log4j.properties b/hadoop-ozone/dist/src/shell/conf/log4j.properties
index ae3c6f51cf3a..f2fd2ddf6925 100644
--- a/hadoop-ozone/dist/src/shell/conf/log4j.properties
+++ b/hadoop-ozone/dist/src/shell/conf/log4j.properties
@@ -31,21 +31,40 @@ log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender
#
# Rolling File Appender - cap space usage at 5gb.
#
-hadoop.log.maxfilesize=256MB
-hadoop.log.maxbackupindex=20
-log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+#hadoop.log.maxfilesize=256MB
+#hadoop.log.maxbackupindex=20
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
-log4j.appender.RFA.MaxFileSize=${hadoop.log.maxfilesize}
-log4j.appender.RFA.MaxBackupIndex=${hadoop.log.maxbackupindex}
+#log4j.appender.RFA.MaxFileSize=${hadoop.log.maxfilesize}
+#log4j.appender.RFA.MaxBackupIndex=${hadoop.log.maxbackupindex}
-log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
# Pattern format: Date LogLevel LoggerName LogMessage
-log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %p %c: %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %p %c: %m%n
# Debugging Pattern format
#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} (%F:%M(%L)) - %m%n
+#
+# Rolling File Appender that gzip rolled over log files
+#
+
+log4j.appender.RFA=org.apache.log4j.rolling.RollingFileAppender
+log4j.appender.RFA.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
+log4j.appender.RFA.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
+
+log4j.appender.RFA.rollingPolicy.ActiveFileName=${hadoop.log.dir}/${hadoop.log.file}
+log4j.appender.RFA.rollingPolicy.FileNamePattern=${hadoop.log.dir}/${hadoop.log.file}-%i.gz
+#MaxFileSize param accepts a long value
+log4j.appender.RFA.triggeringPolicy.MaxFileSize=268435456
+log4j.appender.RFA.rollingPolicy.maxIndex=10
+
+log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %p %c: %m%n
+
#
# Async Rolling File Appender
#
@@ -55,8 +74,9 @@ log4j.appender.ASYNCRFA.maxFileSize=${hadoop.log.maxfilesize}
log4j.appender.ASYNCRFA.maxBackupIndex=${hadoop.log.maxbackupindex}
log4j.appender.ASYNCRFA.conversionPattern=%d{ISO8601} [%t] %p %c: %m%n
+
#
-# Daily Rolling File Appender
+# Daily Rolling File Appender that creates a new log file each day based on date pattern
#
log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
diff --git a/pom.xml b/pom.xml
index b6a3293e1638..48cc3751185d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -656,6 +656,17 @@
joda-time
${joda.time.version}
+
+ log4j
+ apache-log4j-extras
+ 1.2.17
+
+
+ log4j
+ log4j
+
+
+
net.java.dev.jna
jna