This is an automated email from the ASF dual-hosted git repository.

jxue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git


The following commit(s) were added to refs/heads/master by this push:
     new ea9fb06  Upgrade Log4j to 2.16.0 to address CVE-2021-44228 (#1922)
ea9fb06 is described below

commit ea9fb06a103bdb7baa87ae0b586c47dc1745a119
Author: Brent <[email protected]>
AuthorDate: Fri Jan 14 11:57:57 2022 -0800

    Upgrade Log4j to 2.16.0 to address CVE-2021-44228 (#1922)
    
    * HELIX-1921: Upgrade Log4j to 2.16.0 to address CVE-2021-44228
    - Upgrade SLF4J API version from 1.7.25 to 1.7.32 (latest)
    - Remove use of slf4j-log4j12 package
    - Add use of log4j-slf4j-impl package
    - Remove unused custom log appender class
    - Change direct Log4J reference to SLF4J
    - Add -Dlog4j2.formatMsgNoLookups flag to scripts.
    - Rename properties files to log4j2.properties and change CLI parameter to 
log4j2.configurationFile for Log4j2's precedence behavior
    - Change properties files to use log4j2 syntax
    - Add -Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties 
to CLIs that were missing it
---
 .../helix-admin-webapp-1.0.3-SNAPSHOT.ivy          |  6 +-
 helix-admin-webapp/pom.xml                         | 16 +++--
 .../src/main/config/log4j2.properties              | 24 ++++----
 helix-agent/helix-agent-1.0.3-SNAPSHOT.ivy         |  6 +-
 helix-agent/pom.xml                                | 15 +++--
 .../config/{log4j.properties => log4j2.properties} | 20 ++++---
 helix-common/helix-common-1.0.3-SNAPSHOT.ivy       |  6 +-
 helix-common/pom.xml                               | 12 ++--
 helix-common/src/test/resources/log4j.properties   | 41 -------------
 helix-common/src/test/resources/log4j2.properties  | 63 ++++++++++++++++++++
 helix-core/LICENSE                                 |  0
 helix-core/NOTICE                                  |  0
 helix-core/helix-core-1.0.3-SNAPSHOT.ivy           |  6 +-
 helix-core/pom.xml                                 | 39 +++++-------
 helix-core/src/main/config/log4j.properties        | 29 ---------
 .../src/main/config/log4j2.properties              | 26 +++++---
 .../org/apache/helix/tools/CLMLogFileAppender.java | 69 ----------------------
 .../scripts/integration-test/script/dds_driver.py  |  4 +-
 .../integration-test/script/driver_cmd_dict.py     | 18 +++---
 .../testcases/clm_file_dummyprocess.test           | 12 ++--
 .../integration-test/testcases/clm_zk_addmock.test |  2 +-
 .../testcases/clm_zk_dummyprocess.test             | 14 ++---
 helix-core/src/test/resources/log4j.properties     | 40 -------------
 helix-core/src/test/resources/log4j2.properties    | 63 ++++++++++++++++++++
 helix-lock/helix-lock-1.0.3-SNAPSHOT.ivy           |  6 +-
 helix-lock/pom.xml                                 |  4 +-
 .../src/main/config/log4j2.properties              | 24 ++++----
 helix-lock/src/test/resources/log4j.properties     | 41 -------------
 helix-lock/src/test/resources/log4j2.properties    | 63 ++++++++++++++++++++
 helix-rest/helix-rest-1.0.3-SNAPSHOT.ivy           |  6 +-
 helix-rest/pom.xml                                 | 15 +++--
 .../config/{log4j.properties => log4j2.properties} | 24 ++++----
 helix-rest/src/test/resources/log4j.properties     | 40 -------------
 helix-rest/src/test/resources/log4j2.properties    | 63 ++++++++++++++++++++
 ...adata-store-directory-common-1.0.3-SNAPSHOT.ivy |  6 +-
 metadata-store-directory-common/pom.xml            | 12 ++--
 .../src/main/config/log4j.properties               | 32 ----------
 .../src/main/config/log4j2.properties              | 23 +++++---
 .../src/test/resources/log4j.properties            | 41 -------------
 .../src/test/resources/log4j2.properties           | 63 ++++++++++++++++++++
 metrics-common/metrics-common-1.0.3-SNAPSHOT.ivy   |  6 +-
 metrics-common/pom.xml                             | 12 ++--
 metrics-common/src/test/resources/log4j.properties | 41 -------------
 .../src/test/resources/log4j2.properties           | 63 ++++++++++++++++++++
 pom.xml                                            | 27 +++++----
 recipes/distributed-lock-manager/pom.xml           | 34 +++--------
 .../src/main/config/log4j2.properties}             | 20 ++++---
 recipes/rabbitmq-consumer-group/pom.xml            | 33 ++++-------
 .../src/main/config/log4j2.properties}             | 20 ++++---
 .../bin/send-message.sh                            |  4 +-
 .../bin/setup-cluster.sh                           |  4 +-
 .../bin/start-cluster-manager.sh                   |  4 +-
 .../bin/start-consumer.sh                          |  4 +-
 recipes/rsync-replicated-file-system/pom.xml       | 35 ++++-------
 .../src/main/config/log4j2.properties}             | 20 ++++---
 recipes/service-discovery/pom.xml                  | 34 +++--------
 .../src/main/config/log4j.properties               | 31 ----------
 .../src/main/config/log4j2.properties              | 20 ++++---
 recipes/task-execution/pom.xml                     | 30 ++--------
 .../src/main/config/log4j.properties               | 31 ----------
 .../src/main/config/log4j2.properties              | 20 ++++---
 zookeeper-api/pom.xml                              | 23 ++++----
 zookeeper-api/src/main/config/log4j.properties     | 32 ----------
 .../src/main/config/log4j2.properties              | 23 +++++---
 .../apache/helix/zookeeper/zkclient/ZkServer.java  |  5 +-
 zookeeper-api/src/test/resources/log4j.properties  | 41 -------------
 zookeeper-api/src/test/resources/log4j2.properties | 63 ++++++++++++++++++++
 zookeeper-api/zookeeper-api-1.0.3-SNAPSHOT.ivy     |  6 +-
 68 files changed, 797 insertions(+), 883 deletions(-)

diff --git a/helix-admin-webapp/helix-admin-webapp-1.0.3-SNAPSHOT.ivy 
b/helix-admin-webapp/helix-admin-webapp-1.0.3-SNAPSHOT.ivy
index a6efeb4..5b3cd5d 100644
--- a/helix-admin-webapp/helix-admin-webapp-1.0.3-SNAPSHOT.ivy
+++ b/helix-admin-webapp/helix-admin-webapp-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="helix-admin-webapp" type="jar" ext="jar" 
conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
                <dependency org="org.apache.helix" name="helix-core" 
rev="1.0.3-SNAPSHOT" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
                <dependency org="org.restlet.jse" name="org.restlet" 
rev="2.2.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
diff --git a/helix-admin-webapp/pom.xml b/helix-admin-webapp/pom.xml
index f3d5904..0a0b433 100644
--- a/helix-admin-webapp/pom.xml
+++ b/helix-admin-webapp/pom.xml
@@ -37,7 +37,9 @@
       org.apache.commons.cli;version="[1.2,2)",
       org.apache.commons.io*;version="[1.4,2)",
       org.restlet*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       org.apache.zookeeper*;version="[3.4,4)",
       *
     </osgi.import>
@@ -49,12 +51,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.helix</groupId>
@@ -118,6 +120,9 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>appassembler-maven-plugin</artifactId>
         <configuration>
+          <!-- Extra JVM arguments that will be included in the bin scripts -->
+          <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+          <extraJvmArguments>-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
           <platforms>
             <platform>windows</platform>
             <platform>unix</platform>
@@ -129,7 +134,6 @@
             </program>
           </programs>
         </configuration>
-
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git a/helix-lock/src/main/config/log4j.properties 
b/helix-admin-webapp/src/main/config/log4j2.properties
similarity index 60%
rename from helix-lock/src/main/config/log4j.properties
rename to helix-admin-webapp/src/main/config/log4j2.properties
index ae05a3a..59ff588 100644
--- a/helix-lock/src/main/config/log4j.properties
+++ b/helix-admin-webapp/src/main/config/log4j2.properties
@@ -17,16 +17,20 @@
 # under the License.
 #
 
-# Set root logger level to INFO and its only appender to A1.
-log4j.rootLogger=INFO,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = warn
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache.zookeeper=ERROR
-log4j.logger.org.apache.helix=INFO
+logger.zookeeper.name = org.apache.zookeeper
+logger.zookeeper.level = error
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
diff --git a/helix-agent/helix-agent-1.0.3-SNAPSHOT.ivy 
b/helix-agent/helix-agent-1.0.3-SNAPSHOT.ivy
index 5447c90..eaa2c86 100644
--- a/helix-agent/helix-agent-1.0.3-SNAPSHOT.ivy
+++ b/helix-agent/helix-agent-1.0.3-SNAPSHOT.ivy
@@ -85,11 +85,11 @@ under the License.
                <dependency org="org.apache.helix" name="helix-core" 
rev="1.0.3-SNAPSHOT" force="true" conf="test->runtime(*),master(*)">
                        <artifact name="helix-core" type="test-jar" ext="jar" 
conf="" m:classifier="tests"/>
                </dependency>
-    <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+    <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
                <override org="org.mockito" module="mockito-all" 
matcher="exact" rev="1.9.5"/>
                <override org="org.apache.helix" module="helix-core" 
matcher="exact" rev="1.0.3-SNAPSHOT"/>
diff --git a/helix-agent/pom.xml b/helix-agent/pom.xml
index bf502b7..efc317a 100644
--- a/helix-agent/pom.xml
+++ b/helix-agent/pom.xml
@@ -32,7 +32,9 @@
     <osgi.import>
       org.apache.helix*,
       org.apache.commons.cli;version="[1.2,2)",
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.agent*;version="${project.version};-noimport:=true</osgi.export>
@@ -43,12 +45,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.helix</groupId>
@@ -82,6 +84,9 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>appassembler-maven-plugin</artifactId>
         <configuration>
+          <!-- Extra JVM arguments that will be included in the bin scripts -->
+          <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+          <extraJvmArguments>-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
           <programs>
             <program>
               <mainClass>org.apache.helix.agent.HelixAgentMain</mainClass>
diff --git a/helix-agent/src/main/config/log4j.properties 
b/helix-agent/src/main/config/log4j2.properties
similarity index 64%
copy from helix-agent/src/main/config/log4j.properties
copy to helix-agent/src/main/config/log4j2.properties
index f4d5452..b5caaed 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/helix-agent/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/helix-common/helix-common-1.0.3-SNAPSHOT.ivy 
b/helix-common/helix-common-1.0.3-SNAPSHOT.ivy
index 0776b00..1b90893 100644
--- a/helix-common/helix-common-1.0.3-SNAPSHOT.ivy
+++ b/helix-common/helix-common-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="helix-common" type="jar" ext="jar" 
conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
     <dependency org="org.yaml" name="snakeyaml" rev="1.12" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-databind" rev="2.11.0" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
diff --git a/helix-common/pom.xml b/helix-common/pom.xml
index eed6d6d..e626ed2 100644
--- a/helix-common/pom.xml
+++ b/helix-common/pom.xml
@@ -31,7 +31,9 @@
 
   <properties>
     <osgi.import>
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix*;version="${project.version};-noimport:=true</osgi.export>
@@ -51,12 +53,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>
diff --git a/helix-common/src/test/resources/log4j.properties 
b/helix-common/src/test/resources/log4j.properties
deleted file mode 100644
index 24b6d10..0000000
--- a/helix-common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# Set root logger level to DEBUG and its only appender to R.
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/helix-common/src/test/resources/log4j2.properties 
b/helix-common/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/helix-common/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/helix-core/LICENSE b/helix-core/LICENSE
old mode 100644
new mode 100755
diff --git a/helix-core/NOTICE b/helix-core/NOTICE
old mode 100644
new mode 100755
diff --git a/helix-core/helix-core-1.0.3-SNAPSHOT.ivy 
b/helix-core/helix-core-1.0.3-SNAPSHOT.ivy
old mode 100644
new mode 100755
index d5a097e..bf622f1
--- a/helix-core/helix-core-1.0.3-SNAPSHOT.ivy
+++ b/helix-core/helix-core-1.0.3-SNAPSHOT.ivy
@@ -46,11 +46,11 @@ under the License.
        </publications>
 
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
     <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.4.13" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-databind" rev="2.11.0" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
diff --git a/helix-core/pom.xml b/helix-core/pom.xml
old mode 100644
new mode 100755
index da1a72d..9b6c794
--- a/helix-core/pom.xml
+++ b/helix-core/pom.xml
@@ -38,7 +38,9 @@
       org.apache.commons.io*;version="[1.4,2)",
       org.apache.commons.math*;version="[2.1,4)",
       org.apache.jute*;resolution:=optional,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     <osgi.ignore>
@@ -56,30 +58,17 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
@@ -187,7 +176,9 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>appassembler-maven-plugin</artifactId>
         <configuration>
-          
<extraJvmArguments>-Dlog4j.configuration=file://"$BASEDIR"/conf/log4j.properties</extraJvmArguments>
+          <!-- Extra JVM arguments that will be included in the bin scripts -->
+          <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+          <extraJvmArguments>-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
           <programs>
             <program>
               
<mainClass>org.apache.helix.controller.HelixControllerMain</mainClass>
diff --git a/helix-core/src/main/config/log4j.properties 
b/helix-core/src/main/config/log4j.properties
deleted file mode 100644
index b68611c..0000000
--- a/helix-core/src/main/config/log4j.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-log4j.rootLogger=INFO, console
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Target=System.out
-log4j.appender.console.threshold=INFO
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=[%d] [%-5p] [%t] [%c:%L] - %m%n
-
-log4j.logger.org.I0Itec=INFO
-log4j.logger.org.apache=INFO
-log4j.logger.org.apache.helix=INFO
diff --git a/helix-agent/src/main/config/log4j.properties 
b/helix-core/src/main/config/log4j2.properties
similarity index 56%
copy from helix-agent/src/main/config/log4j.properties
copy to helix-core/src/main/config/log4j2.properties
index f4d5452..8b99d58 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/helix-core/src/main/config/log4j2.properties
@@ -17,15 +17,23 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = info
+rootLogger.appenderRef.stdout.ref = STDOUT
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = [%d] [%-5p] [%t] [%c:%L] - %m%n
+appender.console.filter.threshold.type = ThresholdFilter
+appender.console.filter.threshold.level = info
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = info
+
+logger.apache.name = org.apache
+logger.apache.level = info
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
diff --git 
a/helix-core/src/main/java/org/apache/helix/tools/CLMLogFileAppender.java 
b/helix-core/src/main/java/org/apache/helix/tools/CLMLogFileAppender.java
deleted file mode 100644
index 0c1faf5..0000000
--- a/helix-core/src/main/java/org/apache/helix/tools/CLMLogFileAppender.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.apache.helix.tools;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-
-import org.apache.log4j.FileAppender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.spi.ErrorCode;
-
-public class CLMLogFileAppender extends FileAppender {
-  public CLMLogFileAppender() {
-  }
-
-  public CLMLogFileAppender(Layout layout, String filename, boolean append, 
boolean bufferedIO,
-      int bufferSize) throws IOException {
-    super(layout, filename, append, bufferedIO, bufferSize);
-  }
-
-  public CLMLogFileAppender(Layout layout, String filename, boolean append) 
throws IOException {
-    super(layout, filename, append);
-  }
-
-  public CLMLogFileAppender(Layout layout, String filename) throws IOException 
{
-    super(layout, filename);
-  }
-
-  public void activateOptions() {
-    if (fileName != null) {
-      try {
-        fileName = getNewLogFileName();
-        setFile(fileName, fileAppend, bufferedIO, bufferSize);
-      } catch (Exception e) {
-        errorHandler.error("Error while activating log options", e, 
ErrorCode.FILE_OPEN_FAILURE);
-      }
-    }
-  }
-
-  private String getNewLogFileName() {
-    Calendar cal = Calendar.getInstance();
-    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS");
-    String time = sdf.format(cal.getTime());
-
-    StackTraceElement[] stack = Thread.currentThread().getStackTrace();
-    StackTraceElement main = stack[stack.length - 1];
-    String mainClass = main.getClassName();
-
-    return System.getProperty("user.home") + "/EspressoLogs/" + mainClass + 
"_" + time + ".txt";
-  }
-}
diff --git a/helix-core/src/main/scripts/integration-test/script/dds_driver.py 
b/helix-core/src/main/scripts/integration-test/script/dds_driver.py
index 927c49b..a9c47d6 100755
--- a/helix-core/src/main/scripts/integration-test/script/dds_driver.py
+++ b/helix-core/src/main/scripts/integration-test/script/dds_driver.py
@@ -856,11 +856,11 @@ def zookeeper_setup(oper):
     
log4j_file=os.path.join(get_view_root(),"integration-test/config/zookeeper-log4j2file.properties")
     dbg_print("zookeeper_classpath = %s" % zookeeper_classpath)
     if not "zookeeper_classpath" in globals():
-      
zookeeper_classpath="IVY_DIR/org/apache/zookeeper/zookeeper/3.3.0/zookeeper-3.3.0.jar:IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      
zookeeper_classpath="IVY_DIR/org/apache/zookeeper/zookeeper/3.3.0/zookeeper-3.3.0.jar:IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
     if re.search("IVY_DIR",zookeeper_classpath): 
zookeeper_classpath=re.sub("IVY_DIR", ivy_dir,zookeeper_classpath)
     if re.search("VIEW_ROOT",zookeeper_classpath): 
zookeeper_classpath=re.sub("VIEW_ROOT", view_root,zookeeper_classpath)
     run_cmd_add_option("", "config", options.config, check_exist=True)      #  
just add the jvm args
-    zookeeper_cmd="java -d64 -Xmx512m -Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.local.only=false 
-Dcom.sun.management.jmxremote.port=%%s 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false -Dlog4j.configuration=file://%s %s -cp 
%s %s" % (log4j_file, " ".join([x[0]+x[1] for x in 
direct_java_call_jvm_args.values() if x[1]]), zookeeper_classpath, 
zookeeper_class)
+    zookeeper_cmd="java -d64 -Xmx512m -Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.local.only=false 
-Dcom.sun.management.jmxremote.port=%%s 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false -Dlog4j2.configuration=file://%s %s 
-cp %s %s" % (log4j_file, " ".join([x[0]+x[1] for x in 
direct_java_call_jvm_args.values() if x[1]]), zookeeper_classpath, 
zookeeper_class)
     dbg_print("zookeeper_cmd=%s" % (zookeeper_cmd))
     zookeeper_server_ports= options.zookeeper_server_ports and 
options.zookeeper_server_ports or "localhost:2181"
     zookeeper_server_dir=os.path.join(get_work_dir(),"zookeeper_data")
diff --git 
a/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py 
b/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
index 02072b2..dde6ba0 100644
--- a/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
+++ b/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
@@ -21,7 +21,7 @@
 # this is the file to be included by dds_driver.py for product (e.g., 
espresso) specific setting
 #
 
possible_ivy_dir=[os.path.join(os.environ["HOME"],".m2/repository"),os.path.join(os.environ["HOME"],".gradle/cache"),os.path.join(os.environ["HOME"],".ivy2/lin-cache/ivy-cache"),os.path.join(os.environ["HOME"],".ivy2/lin-cache"),"/ivy/.ivy2/ivy-cache","/ivy/.ivy2",
 os.path.join(os.environ["VIEW_ROOT"],"build/ivy2/cache")]
-zookeeper_classpath="IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar:IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+zookeeper_classpath="IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar:IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
 
 # espresso use -2
 kill_cmd_template="jps | grep %s | cut -f1 -d\\  | xargs kill -2"
@@ -63,7 +63,7 @@ cmd_ret_pattern={    # the pattern when the call is 
considered return successful
 direct_java_call_option_mapping={
    "dump_file":"-f "
    ,"value_file":"--value.dump.file="
-   #,"log4j_file":"-Dlog4j.configuration=file://"   # this is only for cluster 
manager
+   #,"log4j_file":"-Dlog4j2.configuration=file://"   # this is only for 
cluster manager
    #,"log4j_file":"--log_props="
    ,"config":"--container_props="
    ,"consumer_event_pattern":"event_pattern"
@@ -93,7 +93,7 @@ direct_java_call_jvm_args={
    ,"jvm_min_heap_size":["-Xms","100m"]
    ,"jvm_gc_log":["-Xloggc:",""]
    ,"jvm_args":["",""]
-   ,"log4j_file":["-Dlog4j.configuration=file://",""]   # this is only for 
cluster manager
+   ,"log4j_file":["-Dlog4j2.configuration=file://",""]   # this is only for 
cluster manager
 }
 direct_java_call_jvm_args_ordered=[
    "jvm_direct_memory_size"
@@ -142,7 +142,7 @@ cmd_direct_call={
       ,"IVY_DIR/commons-io/commons-io/1.4/commons-io-1.4.jar"
       ,"IVY_DIR/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"
       ,"IVY_DIR/jdom/jdom/1.0/jdom-1.0.jar"
-      ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
       ,"IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar"
@@ -162,7 +162,7 @@ cmd_direct_call={
       ,"IVY_DIR/commons-io/commons-io/1.4/commons-io-1.4.jar"
       ,"IVY_DIR/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"
       ,"IVY_DIR/jdom/jdom/1.0/jdom-1.0.jar"
-      ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
       ,"IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar"
@@ -183,7 +183,7 @@ cmd_direct_call={
       ,"IVY_DIR/commons-io/commons-io/1.4/commons-io-1.4.jar"
       ,"IVY_DIR/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"
       ,"IVY_DIR/jdom/jdom/1.0/jdom-1.0.jar"
-      ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
       ,"IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar"
@@ -206,7 +206,7 @@ cmd_direct_call={
       ,"IVY_DIR/commons-io/commons-io/1.4/commons-io-1.4.jar"
       ,"IVY_DIR/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"
       ,"IVY_DIR/jdom/jdom/1.0/jdom-1.0.jar"
-      ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
       ,"IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar"
       
,"IVY_DIR/org/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar"
@@ -229,7 +229,7 @@ cmd_direct_call={
       ,"IVY_DIR/commons-io/commons-io/1.4/commons-io-1.4.jar"
       ,"IVY_DIR/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"
       ,"IVY_DIR/jdom/jdom/1.0/jdom-1.0.jar"
-      ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+      ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
       ,"IVY_DIR/org/apache/zookeeper/zookeeper/3.3.3/zookeeper-3.3.3.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar"
       
,"IVY_DIR/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar"
@@ -245,7 +245,7 @@ cmd_direct_call={
    {
     "class_path":[
       "IVY_DIR/com/github/sgroschupf/zkclient/0.1/zkclient-0.1.jar"
-     ,"IVY_DIR/log4j/log4j/1.2.15/log4j-1.2.15.jar"
+     ,"IVY_DIR/log4j/log4j/2.17.1/log4j-2.17.1.jar"
      ,"IVY_DIR/commons-cli/commons-cli/1.2/commons-cli-1.2.jar"
      ,"IVY_DIR/commons-math/commons-math/2.1/commons-math-2.1.jar"
 ]+cm_jar_files
diff --git 
a/helix-core/src/main/scripts/integration-test/testcases/clm_file_dummyprocess.test
 
b/helix-core/src/main/scripts/integration-test/testcases/clm_file_dummyprocess.test
index dfe8ad7..3888fc9 100755
--- 
a/helix-core/src/main/scripts/integration-test/testcases/clm_file_dummyprocess.test
+++ 
b/helix-core/src/main/scripts/integration-test/testcases/clm_file_dummyprocess.test
@@ -32,21 +32,21 @@ $SCRIPT_DIR/cm_driver.py -c clm_console 
--cmdline_args="--configFile $temp_clust
 
 #Launch dummy process nodes
 dummy_process_1_output=$VIEW_ROOT/$LOG_DIR_FROM_ROOT/dummy_process_1.log
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start 
--logfile=$dummy_process_1_output -l "integration-test/config/log4j.properties" 
--cmdline_args="--configFile $temp_cluster_view_conf --cluster 
storage-cluster-12345 --host localhost --port 8900"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start 
--logfile=$dummy_process_1_output -l 
"integration-test/config/log4j2.properties" --cmdline_args="--configFile 
$temp_cluster_view_conf --cluster storage-cluster-12345 --host localhost --port 
8900"
 
 dummy_process_2_output=$VIEW_ROOT/$LOG_DIR_FROM_ROOT/dummy_process_2.log
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start 
--logfile=$dummy_process_2_output -l "integration-test/config/log4j.properties" 
--cmdline_args="--configFile $temp_cluster_view_conf --cluster 
storage-cluster-12345 --host localhost --port 8901"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start 
--logfile=$dummy_process_2_output -l 
"integration-test/config/log4j2.properties" --cmdline_args="--configFile 
$temp_cluster_view_conf --cluster storage-cluster-12345 --host localhost --port 
8901"
 
-#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8902"
+#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j2.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8902"
 
-#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8903"
+#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j2.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8903"
 
-#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8904"
+#$SCRIPT_DIR/espresso_driver.py -c dummy-process -o start -l 
"cluster-manager/test/integration-test/log4j2.properties" 
--cmdline_props="--configFile /tmp/cluster-12345.cv --cluster 
storage-cluster-12345 --host localhost --port 8904"
 
 sleep 3
 
 #verify cluster state
-#$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start -l 
"cluster-manager/test/integration-test/log4j.properties" 
--cmdline_props="-zkSvr localhost:2188 -cluster storage-cluster-12345"
+#$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start -l 
"cluster-manager/test/integration-test/log4j2.properties" 
--cmdline_props="-zkSvr localhost:2188 -cluster storage-cluster-12345"
 
 $SCRIPT_DIR/cm_driver.py -c dummy-process -o stop
 
diff --git 
a/helix-core/src/main/scripts/integration-test/testcases/clm_zk_addmock.test 
b/helix-core/src/main/scripts/integration-test/testcases/clm_zk_addmock.test
index 47972bf..b0f5bd5 100755
--- a/helix-core/src/main/scripts/integration-test/testcases/clm_zk_addmock.test
+++ b/helix-core/src/main/scripts/integration-test/testcases/clm_zk_addmock.test
@@ -68,7 +68,7 @@ sleep 6
 $SCRIPT_DIR/cm_driver.py -c cluster-manager -o stop
 
 #verify cluster state
-$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start 
--logfile=$verifier_1_output -l "integration-test/config/log4j.properties" 
--cmdline_args="-zkSvr localhost:2188 -cluster storage-cluster-12345"
+$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start 
--logfile=$verifier_1_output -l "integration-test/config/log4j2.properties" 
--cmdline_args="-zkSvr localhost:2188 -cluster storage-cluster-12345"
 
 $SCRIPT_DIR/cm_driver.py -c mock-storage -o stop
 
diff --git 
a/helix-core/src/main/scripts/integration-test/testcases/clm_zk_dummyprocess.test
 
b/helix-core/src/main/scripts/integration-test/testcases/clm_zk_dummyprocess.test
index 1ca6aca..3f70bf7 100755
--- 
a/helix-core/src/main/scripts/integration-test/testcases/clm_zk_dummyprocess.test
+++ 
b/helix-core/src/main/scripts/integration-test/testcases/clm_zk_dummyprocess.test
@@ -49,19 +49,19 @@ $SCRIPT_DIR/cm_driver.py -c clm_console 
--cmdline_args="-zkSvr localhost:2188 -r
 
 #Launch dummy process nodes
 
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8900"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8900"
 
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8901"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8901"
 
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8902"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8902"
 
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8903"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8903"
 
-$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8904"
+$SCRIPT_DIR/cm_driver.py -c dummy-process -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345 -host localhost -port 8904"
 
 
 #Launch the cluster manager
-$SCRIPT_DIR/cm_driver.py -c cluster-manager -o start -l 
"integration-test/config/log4j.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345"
+$SCRIPT_DIR/cm_driver.py -c cluster-manager -o start -l 
"integration-test/config/log4j2.properties" --cmdline_args="-zkSvr 
localhost:2188 -cluster storage-cluster-12345"
 
 exit 0
 sleep 6
@@ -70,7 +70,7 @@ sleep 6
 
 #verify cluster state
 verifier_1_output=$VIEW_ROOT/$LOG_DIR_FROM_ROOT/verifier_1.log
-$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start 
--logfile=$verifier_1_output -l "integration-test/config/log4j.properties" 
--cmdline_args="-zkSvr localhost:2188 -cluster storage-cluster-12345"
+$SCRIPT_DIR/cm_driver.py -c cluster-state-verifier -o start 
--logfile=$verifier_1_output -l "integration-test/config/log4j2.properties" 
--cmdline_args="-zkSvr localhost:2188 -cluster storage-cluster-12345"
 
 $SCRIPT_DIR/cm_driver.py -c dummy-process -o stop
 
diff --git a/helix-core/src/test/resources/log4j.properties 
b/helix-core/src/test/resources/log4j.properties
deleted file mode 100644
index 55c10f9..0000000
--- a/helix-core/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/helix-core/src/test/resources/log4j2.properties 
b/helix-core/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/helix-core/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/helix-lock/helix-lock-1.0.3-SNAPSHOT.ivy 
b/helix-lock/helix-lock-1.0.3-SNAPSHOT.ivy
index d60e0b4..37b7f2e 100644
--- a/helix-lock/helix-lock-1.0.3-SNAPSHOT.ivy
+++ b/helix-lock/helix-lock-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="helix-lock" type="jar" ext="jar" conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
                <dependency org="org.apache.helix" name="helix-core" 
rev="1.0.3-SNAPSHOT" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
        </dependencies>
diff --git a/helix-lock/pom.xml b/helix-lock/pom.xml
index 082a176..893a3a5 100644
--- a/helix-lock/pom.xml
+++ b/helix-lock/pom.xml
@@ -32,7 +32,9 @@
   <properties>
     <osgi.import>
       org.apache.helix*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.lock*;version="${project.version};-noimport:=true</osgi.export>
diff --git a/helix-admin-webapp/src/main/config/log4j.properties 
b/helix-lock/src/main/config/log4j2.properties
similarity index 60%
rename from helix-admin-webapp/src/main/config/log4j.properties
rename to helix-lock/src/main/config/log4j2.properties
index cedef02..91bd89c 100644
--- a/helix-admin-webapp/src/main/config/log4j.properties
+++ b/helix-lock/src/main/config/log4j2.properties
@@ -17,16 +17,20 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=WARN,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = info
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache.zookeeper=ERROR
-log4j.logger.org.apache.helix=INFO
+logger.zookeeper.name = org.apache.zookeeper
+logger.zookeeper.level = error
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
diff --git a/helix-lock/src/test/resources/log4j.properties 
b/helix-lock/src/test/resources/log4j.properties
deleted file mode 100644
index 24b6d10..0000000
--- a/helix-lock/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# Set root logger level to DEBUG and its only appender to R.
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/helix-lock/src/test/resources/log4j2.properties 
b/helix-lock/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/helix-lock/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/helix-rest/helix-rest-1.0.3-SNAPSHOT.ivy 
b/helix-rest/helix-rest-1.0.3-SNAPSHOT.ivy
index dcaedd3..870c6a7 100644
--- a/helix-rest/helix-rest-1.0.3-SNAPSHOT.ivy
+++ b/helix-rest/helix-rest-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="helix-rest" type="jar" ext="jar" conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
     <dependency org="org.yaml" name="snakeyaml" rev="1.17">
         <artifact name="snakeyaml" m:classifier="sources" ext="jar"/>
diff --git a/helix-rest/pom.xml b/helix-rest/pom.xml
index 11614f2..0738707 100644
--- a/helix-rest/pom.xml
+++ b/helix-rest/pom.xml
@@ -34,7 +34,9 @@
       org.apache.helix*,
       org.apache.commons.cli*,
       org.restlet*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       org.apache.zookeeper*;version="[3.4,13)",
       org.apache.commons.io*;version="[1.4,2)",
       *
@@ -56,12 +58,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.helix</groupId>
@@ -173,6 +175,9 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>appassembler-maven-plugin</artifactId>
         <configuration>
+          <!-- Extra JVM arguments that will be included in the bin scripts -->
+          <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+          <extraJvmArguments>-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
           <platforms>
             <platform>windows</platform>
             <platform>unix</platform>
diff --git a/helix-rest/src/main/config/log4j.properties 
b/helix-rest/src/main/config/log4j2.properties
similarity index 60%
rename from helix-rest/src/main/config/log4j.properties
rename to helix-rest/src/main/config/log4j2.properties
index cedef02..59ff588 100644
--- a/helix-rest/src/main/config/log4j.properties
+++ b/helix-rest/src/main/config/log4j2.properties
@@ -17,16 +17,20 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=WARN,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = warn
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache.zookeeper=ERROR
-log4j.logger.org.apache.helix=INFO
+logger.zookeeper.name = org.apache.zookeeper
+logger.zookeeper.level = error
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
diff --git a/helix-rest/src/test/resources/log4j.properties 
b/helix-rest/src/test/resources/log4j.properties
deleted file mode 100644
index 55c10f9..0000000
--- a/helix-rest/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/helix-rest/src/test/resources/log4j2.properties 
b/helix-rest/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/helix-rest/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git 
a/metadata-store-directory-common/metadata-store-directory-common-1.0.3-SNAPSHOT.ivy
 
b/metadata-store-directory-common/metadata-store-directory-common-1.0.3-SNAPSHOT.ivy
index ee6c485..35516ca 100644
--- 
a/metadata-store-directory-common/metadata-store-directory-common-1.0.3-SNAPSHOT.ivy
+++ 
b/metadata-store-directory-common/metadata-store-directory-common-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="metadata-store-directory-common" type="jar" 
ext="jar" conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
     <dependency org="org.yaml" name="snakeyaml" rev="1.17">
         <artifact name="snakeyaml" m:classifier="sources" ext="jar"/>
diff --git a/metadata-store-directory-common/pom.xml 
b/metadata-store-directory-common/pom.xml
index 76c1d7d..10d1d6c 100644
--- a/metadata-store-directory-common/pom.xml
+++ b/metadata-store-directory-common/pom.xml
@@ -31,7 +31,9 @@
 
   <properties>
     <osgi.import>
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.msdcommon*;version="${project.version};-noimport:=true
@@ -52,12 +54,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git a/metadata-store-directory-common/src/main/config/log4j.properties 
b/metadata-store-directory-common/src/main/config/log4j.properties
deleted file mode 100644
index cedef02..0000000
--- a/metadata-store-directory-common/src/main/config/log4j.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=WARN,A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache.zookeeper=ERROR
-log4j.logger.org.apache.helix=INFO
diff --git a/helix-agent/src/main/config/log4j.properties 
b/metadata-store-directory-common/src/main/config/log4j2.properties
similarity index 60%
copy from helix-agent/src/main/config/log4j.properties
copy to metadata-store-directory-common/src/main/config/log4j2.properties
index f4d5452..59ff588 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/metadata-store-directory-common/src/main/config/log4j2.properties
@@ -17,15 +17,20 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = warn
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.zookeeper.name = org.apache.zookeeper
+logger.zookeeper.level = error
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
diff --git 
a/metadata-store-directory-common/src/test/resources/log4j.properties 
b/metadata-store-directory-common/src/test/resources/log4j.properties
deleted file mode 100644
index 24b6d10..0000000
--- a/metadata-store-directory-common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# Set root logger level to DEBUG and its only appender to R.
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git 
a/metadata-store-directory-common/src/test/resources/log4j2.properties 
b/metadata-store-directory-common/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/metadata-store-directory-common/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/metrics-common/metrics-common-1.0.3-SNAPSHOT.ivy 
b/metrics-common/metrics-common-1.0.3-SNAPSHOT.ivy
index 3228690..fc0fb32 100644
--- a/metrics-common/metrics-common-1.0.3-SNAPSHOT.ivy
+++ b/metrics-common/metrics-common-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="metrics-common" type="jar" ext="jar" 
conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
        </dependencies>
 </ivy-module>
diff --git a/metrics-common/pom.xml b/metrics-common/pom.xml
index 7acafe4..45ff9ab 100644
--- a/metrics-common/pom.xml
+++ b/metrics-common/pom.xml
@@ -31,7 +31,9 @@
 
   <properties>
     <osgi.import>
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix*;version="${project.version};-noimport:=true</osgi.export>
@@ -46,12 +48,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>
diff --git a/metrics-common/src/test/resources/log4j.properties 
b/metrics-common/src/test/resources/log4j.properties
deleted file mode 100644
index 24b6d10..0000000
--- a/metrics-common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# Set root logger level to DEBUG and its only appender to R.
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/metrics-common/src/test/resources/log4j2.properties 
b/metrics-common/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/metrics-common/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/pom.xml b/pom.xml
index 73ac397..71b444e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,12 +20,6 @@
 
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
   <modelVersion>4.0.0</modelVersion>
-  <dependencies>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-  </dependencies>
 
   <parent>
     <groupId>org.apache</groupId>
@@ -467,12 +461,22 @@
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
-        <version>1.7.25</version>
+        <version>1.7.32</version>
       </dependency>
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.14</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>2.17.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>2.17.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>2.17.1</version>
       </dependency>
       <dependency>
         <groupId>org.restlet.jse</groupId>
@@ -562,7 +566,8 @@
             
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
             
<assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
             <!-- Extra JVM arguments that will be included in the bin scripts 
-->
-            <extraJvmArguments>-Xms512m -Xmx512m</extraJvmArguments>
+            <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+            <extraJvmArguments>-Xms512m -Xmx512m 
-Dlog4j2.formatMsgNoLookups=true</extraJvmArguments>
             <!-- Generate bin scripts for windows and unix pr default -->
             <platforms>
               <platform>windows</platform>
diff --git a/recipes/distributed-lock-manager/pom.xml 
b/recipes/distributed-lock-manager/pom.xml
index 8ae3b4c..77f8632 100644
--- a/recipes/distributed-lock-manager/pom.xml
+++ b/recipes/distributed-lock-manager/pom.xml
@@ -33,7 +33,9 @@
   <properties>
     <osgi.import>
       org.apache.helix*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.lockmanager*;version="${project.version};-noimport:=true</osgi.export>
@@ -52,31 +54,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <classifier>sources</classifier>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
   </dependencies>
   <build>
@@ -96,7 +79,8 @@
             
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
             
<assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
             <!-- Extra JVM arguments that will be included in the bin scripts 
-->
-            <extraJvmArguments>-Xms512m -Xmx512m</extraJvmArguments>
+            <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+            <extraJvmArguments>-Xms512m -Xmx512m 
-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
             <!-- Generate bin scripts for windows and unix pr default -->
             <platforms>
               <platform>windows</platform>
diff --git 
a/recipes/rsync-replicated-file-system/src/main/config/log4j.properties 
b/recipes/distributed-lock-manager/src/main/config/log4j2.properties
similarity index 64%
rename from 
recipes/rsync-replicated-file-system/src/main/config/log4j.properties
rename to recipes/distributed-lock-manager/src/main/config/log4j2.properties
index 0e195ca..b5caaed 100644
--- a/recipes/rsync-replicated-file-system/src/main/config/log4j.properties
+++ b/recipes/distributed-lock-manager/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=ERROR,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/recipes/rabbitmq-consumer-group/pom.xml 
b/recipes/rabbitmq-consumer-group/pom.xml
index db4926f..5c101f8 100644
--- a/recipes/rabbitmq-consumer-group/pom.xml
+++ b/recipes/rabbitmq-consumer-group/pom.xml
@@ -35,40 +35,24 @@
     <osgi.import>
       org.apache.helix*,
       org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.recipes.rabbitmq*;version="${project.version};-noimport:=true</osgi.export>
   </properties>
 
   <dependencies>
+
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <classifier>sources</classifier>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
@@ -101,6 +85,9 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>appassembler-maven-plugin</artifactId>
         <configuration>
+          <!-- Extra JVM arguments that will be included in the bin scripts -->
+          <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+          <extraJvmArguments>-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
           <programs>
             <program>
               
<mainClass>org.apache.helix.recipes.rabbitmq.SetupConsumerCluster</mainClass>
diff --git a/recipes/distributed-lock-manager/src/main/config/log4j.properties 
b/recipes/rabbitmq-consumer-group/src/main/config/log4j2.properties
similarity index 64%
rename from recipes/distributed-lock-manager/src/main/config/log4j.properties
rename to recipes/rabbitmq-consumer-group/src/main/config/log4j2.properties
index 0e195ca..b5caaed 100644
--- a/recipes/distributed-lock-manager/src/main/config/log4j.properties
+++ b/recipes/rabbitmq-consumer-group/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=ERROR,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/recipes/rsync-replicated-file-system/bin/send-message.sh 
b/recipes/rsync-replicated-file-system/bin/send-message.sh
index c07da19..c2e6523 100755
--- a/recipes/rsync-replicated-file-system/bin/send-message.sh
+++ b/recipes/rsync-replicated-file-system/bin/send-message.sh
@@ -20,7 +20,7 @@
 
 script_dir=`dirname $0`
 LIB=$script_dir/../lib
-CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-1.2.15.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
+CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-api-2.17.1.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
 # echo $CLASSPATH
 
-java -cp "$CLASSPATH" org.apache.helix.filestore.Emitter $@
+java -Dlog4j2.formatMsgNoLookups=true -cp "$CLASSPATH" 
org.apache.helix.filestore.Emitter $@
diff --git a/recipes/rsync-replicated-file-system/bin/setup-cluster.sh 
b/recipes/rsync-replicated-file-system/bin/setup-cluster.sh
index ca11f9c..efd035b 100755
--- a/recipes/rsync-replicated-file-system/bin/setup-cluster.sh
+++ b/recipes/rsync-replicated-file-system/bin/setup-cluster.sh
@@ -20,7 +20,7 @@
 
 script_dir=`dirname $0`
 LIB=$script_dir/../lib
-CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-1.2.15.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
+CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-api-2.17.1.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
 # echo $CLASSPATH
 
-java -cp "$CLASSPATH" org.apache.helix.filestore.SetupConsumerCluster $@
+java -Dlog4j2.formatMsgNoLookups=true -cp "$CLASSPATH" 
org.apache.helix.filestore.SetupConsumerCluster $@
diff --git a/recipes/rsync-replicated-file-system/bin/start-cluster-manager.sh 
b/recipes/rsync-replicated-file-system/bin/start-cluster-manager.sh
index bb3b64d..cd1d0df 100755
--- a/recipes/rsync-replicated-file-system/bin/start-cluster-manager.sh
+++ b/recipes/rsync-replicated-file-system/bin/start-cluster-manager.sh
@@ -20,7 +20,7 @@
 
 script_dir=`dirname $0`
 LIB=$script_dir/../lib
-CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-1.2.15.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
+CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-api-2.17.1.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
 # echo $CLASSPATH
 
-java -cp "$CLASSPATH" org.apache.helix.filestore.StartClusterManager $@
+java -Dlog4j2.formatMsgNoLookups=true -cp "$CLASSPATH" 
org.apache.helix.filestore.StartClusterManager $@
diff --git a/recipes/rsync-replicated-file-system/bin/start-consumer.sh 
b/recipes/rsync-replicated-file-system/bin/start-consumer.sh
index 08a8dd2..512fd70 100755
--- a/recipes/rsync-replicated-file-system/bin/start-consumer.sh
+++ b/recipes/rsync-replicated-file-system/bin/start-consumer.sh
@@ -20,7 +20,7 @@
 
 script_dir=`dirname $0`
 LIB=$script_dir/../lib
-CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-1.2.15.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
+CLASSPATH=$script_dir/../target/classes:"$LIB"/helix-core-0.6.4-SNAPSHOT.jar:"$LIB"/rabbitmq-client.jar:"$LIB"/commons-cli-1.1.jar:"$LIB"/commons-io-1.2.jar:"$LIB"/commons-math-2.1.jar:"$LIB"/jackson-core-asl-1.8.5.jar:"$LIB"/jackson-mapper-asl-1.8.5.jar:"$LIB"/log4j-api-2.17.1.jar:"$LIB"/org.restlet-1.1.10.jar:"$LIB"/zkclient-0.1.jar:"$LIB"/zookeeper-3.3.4.jar
 # echo $CLASSPATH
 
-java -cp "$CLASSPATH" org.apache.helix.filestore.FileStore $@
+java -Dlog4j2.formatMsgNoLookups=true -cp "$CLASSPATH" 
org.apache.helix.filestore.FileStore $@
diff --git a/recipes/rsync-replicated-file-system/pom.xml 
b/recipes/rsync-replicated-file-system/pom.xml
index 407171f..4cf1003 100644
--- a/recipes/rsync-replicated-file-system/pom.xml
+++ b/recipes/rsync-replicated-file-system/pom.xml
@@ -33,41 +33,25 @@
   <properties>
     <osgi.import>
       org.apache.helix*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.filestore*;version="${project.version};-noimport:=true</osgi.export>
   </properties>
 
   <dependencies>
+
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <classifier>sources</classifier>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
@@ -106,7 +90,8 @@
             
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
             
<assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
             <!-- Extra JVM arguments that will be included in the bin scripts 
-->
-            <extraJvmArguments>-Xms512m -Xmx512m</extraJvmArguments>
+            <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+            <extraJvmArguments>-Xms512m -Xmx512m 
-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
             <!-- Generate bin scripts for windows and unix pr default -->
             <platforms>
               <platform>windows</platform>
diff --git a/recipes/rabbitmq-consumer-group/src/main/config/log4j.properties 
b/recipes/rsync-replicated-file-system/src/main/config/log4j2.properties
similarity index 64%
rename from recipes/rabbitmq-consumer-group/src/main/config/log4j.properties
rename to recipes/rsync-replicated-file-system/src/main/config/log4j2.properties
index 0e195ca..b5caaed 100644
--- a/recipes/rabbitmq-consumer-group/src/main/config/log4j.properties
+++ b/recipes/rsync-replicated-file-system/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=ERROR,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/recipes/service-discovery/pom.xml 
b/recipes/service-discovery/pom.xml
index bc004e1..14fd598 100644
--- a/recipes/service-discovery/pom.xml
+++ b/recipes/service-discovery/pom.xml
@@ -33,7 +33,9 @@
   <properties>
     <osgi.import>
       org.apache.helix*,
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.servicediscovery*;version="${project.version};-noimport:=true</osgi.export>
@@ -43,31 +45,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <classifier>sources</classifier>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>
@@ -96,7 +79,8 @@
             
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
             
<assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
             <!-- Extra JVM arguments that will be included in the bin scripts 
-->
-            <extraJvmArguments>-Xms512m -Xmx512m</extraJvmArguments>
+            <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+            <extraJvmArguments>-Xms512m -Xmx512m 
-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
             <!-- Generate bin scripts for windows and unix pr default -->
             <platforms>
               <platform>windows</platform>
diff --git a/recipes/service-discovery/src/main/config/log4j.properties 
b/recipes/service-discovery/src/main/config/log4j.properties
deleted file mode 100644
index 0e195ca..0000000
--- a/recipes/service-discovery/src/main/config/log4j.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=ERROR,A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
diff --git a/helix-agent/src/main/config/log4j.properties 
b/recipes/service-discovery/src/main/config/log4j2.properties
similarity index 64%
copy from helix-agent/src/main/config/log4j.properties
copy to recipes/service-discovery/src/main/config/log4j2.properties
index f4d5452..b5caaed 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/recipes/service-discovery/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/recipes/task-execution/pom.xml b/recipes/task-execution/pom.xml
index 26f1d32..b521307 100644
--- a/recipes/task-execution/pom.xml
+++ b/recipes/task-execution/pom.xml
@@ -34,31 +34,12 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
+      <version>1.7.32</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-      <classifier>sources</classifier>
-      <exclusions>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.jms</groupId>
-          <artifactId>jms</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jdmk</groupId>
-          <artifactId>jmxtools</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.jmx</groupId>
-          <artifactId>jmxri</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.17.1</version>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>
@@ -94,7 +75,8 @@
             
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
             
<assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
             <!-- Extra JVM arguments that will be included in the bin scripts 
-->
-            <extraJvmArguments>-Xms512m -Xmx512m</extraJvmArguments>
+            <!-- -D flag is a failsafe to address 
https://nvd.nist.gov/vuln/detail/CVE-2021-44228 -->
+            <extraJvmArguments>-Xms512m -Xmx512m 
-Dlog4j2.formatMsgNoLookups=true 
-Dlog4j2.configurationFile=file://"$BASEDIR"/conf/log4j2.properties</extraJvmArguments>
             <!-- Generate bin scripts for windows and unix pr default -->
             <platforms>
               <platform>windows</platform>
diff --git a/recipes/task-execution/src/main/config/log4j.properties 
b/recipes/task-execution/src/main/config/log4j.properties
deleted file mode 100644
index 0e195ca..0000000
--- a/recipes/task-execution/src/main/config/log4j.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=ERROR,A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
diff --git a/helix-agent/src/main/config/log4j.properties 
b/recipes/task-execution/src/main/config/log4j2.properties
similarity index 64%
copy from helix-agent/src/main/config/log4j.properties
copy to recipes/task-execution/src/main/config/log4j2.properties
index f4d5452..b5caaed 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/recipes/task-execution/src/main/config/log4j2.properties
@@ -17,15 +17,17 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.apache.name = org.apache
+logger.apache.level = error
diff --git a/zookeeper-api/pom.xml b/zookeeper-api/pom.xml
index 85fbf96..80fb4c9 100644
--- a/zookeeper-api/pom.xml
+++ b/zookeeper-api/pom.xml
@@ -31,7 +31,9 @@
 
   <properties>
     <osgi.import>
-      org.slf4j*;version="[1.6,2)",
+      org.slf4j*;version="[1.7,2)",
+      org.apache.logging.log4j*;version="[2.17,3)",
+      org.apache.logging.slf4j*;version="[2.17,3)",
       org.apache.zookeeper.server.persistence*;resolution:=optional,
       org.apache.zookeeper.server.util*;resolution:=optional,
       org.apache.zookeeper.txn*;resolution:=optional,
@@ -40,7 +42,6 @@
     </osgi.import>
     
<osgi.export>org.apache.helix.zookeeper*;version="${project.version};-noimport:=true</osgi.export>
   </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.helix</groupId>
@@ -61,6 +62,14 @@
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
         </exclusion>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-log4j12</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>log4j</groupId>
+          <artifactId>log4j</artifactId>
+        </exclusion>
       </exclusions>
     </dependency>
     <dependency>
@@ -79,16 +88,6 @@
       <version>1.14</version>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>1.7.25</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>1.7.14</version>
-    </dependency>
-    <dependency>
       <groupId>javax.annotation</groupId>
       <artifactId>javax.annotation-api</artifactId>
       <version>1.3.2</version>
diff --git a/zookeeper-api/src/main/config/log4j.properties 
b/zookeeper-api/src/main/config/log4j.properties
deleted file mode 100644
index cedef02..0000000
--- a/zookeeper-api/src/main/config/log4j.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=WARN,A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache.zookeeper=ERROR
-log4j.logger.org.apache.helix=INFO
diff --git a/helix-agent/src/main/config/log4j.properties 
b/zookeeper-api/src/main/config/log4j2.properties
similarity index 60%
rename from helix-agent/src/main/config/log4j.properties
rename to zookeeper-api/src/main/config/log4j2.properties
index f4d5452..59ff588 100644
--- a/helix-agent/src/main/config/log4j.properties
+++ b/zookeeper-api/src/main/config/log4j2.properties
@@ -17,15 +17,20 @@
 # under the License.
 #
 
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG,A1
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = warn
+rootLogger.appenderRef.stdout.ref = A1
 
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
+appender.console.name = A1
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
 
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
 
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
+logger.zookeeper.name = org.apache.zookeeper
+logger.zookeeper.level = error
+
+logger.helix.name = org.apache.helix
+logger.helix.level = info
diff --git 
a/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java 
b/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
index 0692150..761750d 100644
--- 
a/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
+++ 
b/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
@@ -23,6 +23,8 @@ import java.io.File;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
@@ -31,13 +33,12 @@ import 
org.apache.helix.zookeeper.zkclient.exception.ZkException;
 import org.apache.helix.zookeeper.zkclient.exception.ZkInterruptedException;
 import org.apache.helix.zookeeper.zkclient.serialize.BasicZkSerializer;
 import org.apache.helix.zookeeper.zkclient.serialize.SerializableSerializer;
-import org.apache.log4j.Logger;
 import org.apache.zookeeper.server.NIOServerCnxnFactory;
 import org.apache.zookeeper.server.ZooKeeperServer;
 
 public class ZkServer {
 
-    private final static Logger LOG = Logger.getLogger(ZkServer.class);
+    private static Logger LOG = LoggerFactory.getLogger(ZkServer.class);
 
     public static final int DEFAULT_PORT = 2181;
     public static final int DEFAULT_TICK_TIME = 5000;
diff --git a/zookeeper-api/src/test/resources/log4j.properties 
b/zookeeper-api/src/test/resources/log4j.properties
deleted file mode 100644
index 24b6d10..0000000
--- a/zookeeper-api/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# Set root logger level to DEBUG and its only appender to R.
-log4j.rootLogger=ERROR, C
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.C=org.apache.log4j.ConsoleAppender
-log4j.appender.C.layout=org.apache.log4j.PatternLayout
-log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
-
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%5p [%C:%M] (%F:%L) - %m%n
-log4j.appender.R.File=target/ClusterManagerLogs/log.txt
-
-log4j.appender.STATUSDUMP=org.apache.log4j.RollingFileAppender
-log4j.appender.STATUSDUMP.layout=org.apache.log4j.SimpleLayout
-log4j.appender.STATUSDUMP.File=target/ClusterManagerLogs/statusUpdates.log
-
-log4j.logger.org.I0Itec=ERROR
-log4j.logger.org.apache=ERROR
-log4j.logger.com.noelios=ERROR
-log4j.logger.org.restlet=ERROR
-
-log4j.logger.org.apache.helix.monitoring.ZKPathDataDumpTask=ERROR,STATUSDUMP
diff --git a/zookeeper-api/src/test/resources/log4j2.properties 
b/zookeeper-api/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..5aa8df8
--- /dev/null
+++ b/zookeeper-api/src/test/resources/log4j2.properties
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# See https://logging.apache.org/log4j/2.0/manual/configuration.html#Properties
+rootLogger.level = error
+rootLogger.appenderRef.stdout.ref = STDOUT
+
+appender.console.name = STDOUT
+appender.console.type = Console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
+
+appender.rolling.name = R
+appender.rolling.type = RollingFile
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %5p [%C:%M] (%F:%L) - %m%n
+appender.rolling.fileName = target/ClusterManagerLogs/log.txt
+appender.rolling.filePattern = 
target/ClusterManagerLogs/log.%d{dd-MMM-hh}.txt.gz
+appender.rolling.policies.type = Policies
+appender.rolling.policies.startup.type = OnStartupTriggeringPolicy
+
+# Via https://logging.apache.org/log4j/2.x/manual/migration.html
+# 'The Log4j 1.x SimpleLayout can be emulated with PatternLayout "%level - 
%m%n"'
+appender.statusdump.name = STATUSDUMP
+appender.statusdump.type = RollingFile
+appender.statusdump.layout.type = PatternLayout
+appender.statusdump.layout.pattern = "%level - %m%n"
+appender.statusdump.fileName = target/ClusterManagerLogs/statusUpdates.log
+appender.statusdump.filePattern = 
target/ClusterManagerLogs/statusUpdates.%d{dd-MMM-hh}.log.gz
+appender.statusdump.policies.type = Policies
+appender.statusdump.policies.startup.type = OnStartupTriggeringPolicy
+
+logger.i0itec.name = org.I0Itec
+logger.i0itec.level = error
+
+logger.apache.name = org.apache
+logger.apache.level = error
+
+logger.noelios.name = com.noelios
+logger.noelios.level = error
+
+logger.restlet.name = org.restlet
+logger.restlet.level = error
+
+logger.helixzkdatadump.name = org.apache.helix.monitoring.ZKPathDataDumpTask
+logger.helixzkdatadump.level = error
+logger.helixzkdatadump.appenderRef.statusdump.ref = STATUSDUMP
diff --git a/zookeeper-api/zookeeper-api-1.0.3-SNAPSHOT.ivy 
b/zookeeper-api/zookeeper-api-1.0.3-SNAPSHOT.ivy
index 4095e93..9b55921 100644
--- a/zookeeper-api/zookeeper-api-1.0.3-SNAPSHOT.ivy
+++ b/zookeeper-api/zookeeper-api-1.0.3-SNAPSHOT.ivy
@@ -37,11 +37,11 @@ under the License.
                <artifact name="zookeeper-api" type="jar" ext="jar" 
conf="master"/>
        </publications>
        <dependencies>
-         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.25" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
+         <dependency org="org.slf4j" name="slf4j-api" rev="1.7.32" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="slf4j-api" ext="jar"/>
     </dependency>
-    <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.14" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
-        <artifact name="slf4j-log4j12" ext="jar"/>
+    <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
+        <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
     <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.4.13" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-databind" rev="2.11.0" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>

Reply via email to