diff --git a/api/src/test/resources/log4j2.properties b/api/src/test/resources/log4j2.properties
new file mode 100644
index 000000000..7585fd387
--- /dev/null
+++ b/api/src/test/resources/log4j2.properties
@@ -0,0 +1,43 @@
+#
+# 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 everything to be logged to the file target/unit-tests.log
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
+
+# Tests that launch java subprocesses can set the "test.appender" system property to
+# "console" to avoid having the child process's logs overwrite the unit test's
+# log file.
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
+
+# Ignore messages below warning level from Jetty, because it's a bit verbose
+logger.livy_shaded.name = org.apache.livy.shaded
+logger.livy_shaded.level = info
+logger.spark_project_jetty.name = org.sparkproject.jetty
+logger.spark_project_jetty.level = warn
+logger.eclipse_jetty.name = org.eclipse.jetty
+logger.eclipse_jetty.level = warn
diff --git a/client-common/pom.xml b/client-common/pom.xml
index fd49c2ec0..6a3cd07f8 100644
--- a/client-common/pom.xml
+++ b/client-common/pom.xml
@@ -46,7 +46,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
provided
diff --git a/client-http/src/test/resources/log4j2.properties b/client-http/src/test/resources/log4j2.properties
new file mode 100644
index 000000000..b1efa04c2
--- /dev/null
+++ b/client-http/src/test/resources/log4j2.properties
@@ -0,0 +1,41 @@
+#
+# 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 everything to be logged to the file target/unit-tests.log
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
+
+# Tests that launch java subprocesses can set the "test.appender" system property to
+# "console" to avoid having the child process's logs overwrite the unit test's
+# log file.
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
+
+# Ignore messages below warning level from Jetty, because it's a bit verbose
+logger.sparkproject.name = org.apache.livy.shaded
+logger.sparkproject.level = info
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
diff --git a/conf/log4j.properties.template b/conf/log4j2.properties.template
similarity index 71%
rename from conf/log4j.properties.template
rename to conf/log4j2.properties.template
index 70b67a6d5..3f9276cd8 100644
--- a/conf/log4j.properties.template
+++ b/conf/log4j2.properties.template
@@ -15,10 +15,14 @@
# limitations under the License.
#
# The default Livy logging configuration.
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
-log4j.logger.org.eclipse.jetty=WARN
+rootLogger.level = info
+rootLogger.appenderRef.stdout.ref = console
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
+
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
diff --git a/core/pom.xml b/core/pom.xml
index fca0600b7..8983f0d0a 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -38,8 +38,20 @@
- ch.qos.reload4j
- reload4j
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
@@ -59,7 +71,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
diff --git a/dev/docker/livy-dev-cluster/conf/livy/log4j.properties b/dev/docker/livy-dev-cluster/conf/livy/log4j.properties
deleted file mode 100644
index c3a2d09b0..000000000
--- a/dev/docker/livy-dev-cluster/conf/livy/log4j.properties
+++ /dev/null
@@ -1,33 +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.rootCategory=INFO, console, DRFA
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.DRFA.File=/logs/livy-server.log
-# Rollver at midnight
-log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
-log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
-# Pattern format: Date LogLevel LoggerName LogMessage
-log4j.appender.DRFA.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.logger.org.eclipse.jetty=WARN
diff --git a/dev/docker/livy-dev-cluster/conf/livy/log4j2.properties b/dev/docker/livy-dev-cluster/conf/livy/log4j2.properties
new file mode 100644
index 000000000..5025fab20
--- /dev/null
+++ b/dev/docker/livy-dev-cluster/conf/livy/log4j2.properties
@@ -0,0 +1,43 @@
+#
+# 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.
+#
+
+property.livy.log.dir = /logs
+property.livy.log.file = livy-server.log
+
+rootLogger.level = info
+rootLogger.appenderRefs = stdout, drfa
+rootLogger.appenderRef.stdout.ref = stdout
+rootLogger.appenderRef.drfa.ref = drfa
+
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d %p %c{1} [%t]: %m%n
+
+appender.drfa.type = RollingFile
+appender.drfa.name = drfa
+appender.drfa.fileName = ${livy.log.dir}/${livy.log.file}
+appender.drfa.filePattern = ${livy.log.dir}/${livy.log.file}.%d{yyyy-MM-dd}
+appender.drfa.layout.type = PatternLayout
+appender.drfa.layout.pattern = %d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+appender.drfa.policies.type = Policies
+appender.drfa.policies.time.type = TimeBasedTriggeringPolicy
+appender.drfa.policies.time.interval = 1
+
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
+
diff --git a/dev/docker/livy-dev-cluster/conf/master/log4j.properties b/dev/docker/livy-dev-cluster/conf/master/log4j.properties
deleted file mode 100644
index 644032d2d..000000000
--- a/dev/docker/livy-dev-cluster/conf/master/log4j.properties
+++ /dev/null
@@ -1,35 +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.rootCategory=INFO, console, DRFA
-log4jspark.log.dir=/logs
-log4jspark.log.file=spark-master.log
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.DRFA.File=${log4jspark.log.dir}/${log4jspark.log.file}
-# Rollver at midnight
-log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
-log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
-# Pattern format: Date LogLevel LoggerName LogMessage
-log4j.appender.DRFA.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.logger.org.eclipse.jetty=WARN
diff --git a/dev/docker/livy-dev-cluster/conf/master/log4j2.properties b/dev/docker/livy-dev-cluster/conf/master/log4j2.properties
new file mode 100644
index 000000000..70db369b9
--- /dev/null
+++ b/dev/docker/livy-dev-cluster/conf/master/log4j2.properties
@@ -0,0 +1,42 @@
+#
+# 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.
+#
+
+property.spark.log.dir = /logs
+property.spark.log.file = spark-master.log
+
+rootLogger.level = info
+rootLogger.appenderRefs = stdout, drfa
+rootLogger.appenderRef.stdout.ref = stdout
+rootLogger.appenderRef.drfa.ref = drfa
+
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d %p %c{1} [%t]: %m%n
+
+appender.drfa.type = RollingFile
+appender.drfa.name = drfa
+appender.drfa.fileName = ${spark.log.dir}/${spark.log.file}
+appender.drfa.filePattern = ${spark.log.dir}/${spark.log.file}.%d{yyyy-MM-dd}
+appender.drfa.layout.type = PatternLayout
+appender.drfa.layout.pattern = %d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+appender.drfa.policies.type = Policies
+appender.drfa.policies.time.type = TimeBasedTriggeringPolicy
+appender.drfa.policies.time.interval = 1
+
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
diff --git a/dev/docker/livy-dev-cluster/conf/worker/log4j.properties b/dev/docker/livy-dev-cluster/conf/worker/log4j.properties
deleted file mode 100644
index 23c5ee5d2..000000000
--- a/dev/docker/livy-dev-cluster/conf/worker/log4j.properties
+++ /dev/null
@@ -1,35 +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.rootCategory=INFO, console, DRFA
-log4jspark.log.dir=/logs
-log4jspark.log.file=spark-worker.log
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.DRFA.File=${log4jspark.log.dir}/${log4jspark.log.file}
-# Rollver at midnight
-log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
-log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
-# Pattern format: Date LogLevel LoggerName LogMessage
-log4j.appender.DRFA.layout.ConversionPattern=%d %p %c{1} [%t]: %m%n
-
-log4j.logger.org.eclipse.jetty=WARN
diff --git a/dev/docker/livy-dev-cluster/conf/worker/log4j2.properties b/dev/docker/livy-dev-cluster/conf/worker/log4j2.properties
new file mode 100644
index 000000000..8003e403c
--- /dev/null
+++ b/dev/docker/livy-dev-cluster/conf/worker/log4j2.properties
@@ -0,0 +1,43 @@
+#
+# 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.
+#
+
+property.spark.log.dir = /logs
+property.spark.log.file = spark-worker.log
+
+rootLogger.level = info
+rootLogger.appenderRefs = stdout, drfa
+rootLogger.appenderRef.stdout.ref = stdout
+rootLogger.appenderRef.drfa.ref = drfa
+
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d %p %c{1} [%t]: %m%n
+
+appender.drfa.type = RollingFile
+appender.drfa.name = drfa
+appender.drfa.fileName = ${spark.log.dir}/${spark.log.file}
+appender.drfa.filePattern = ${spark.log.dir}/${spark.log.file}.%d{yyyy-MM-dd}
+appender.drfa.layout.type = PatternLayout
+appender.drfa.layout.pattern = %d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+appender.drfa.policies.type = Policies
+appender.drfa.policies.time.type = TimeBasedTriggeringPolicy
+appender.drfa.policies.time.interval = 1
+
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
+
diff --git a/integration-test/pom.xml b/integration-test/pom.xml
index a803b3573..a38d5cd6a 100644
--- a/integration-test/pom.xml
+++ b/integration-test/pom.xml
@@ -215,6 +215,10 @@
log4j
log4j
+
+ org.slf4j
+ slf4j-api
+
org.slf4j
slf4j-log4j12
@@ -337,6 +341,10 @@
org.apache.logging.log4j
log4j-slf4j-impl
+
+ log4j
+ log4j
+
org.slf4j
slf4j-log4j12
diff --git a/integration-test/src/test/resources/log4j.properties b/integration-test/src/test/resources/log4j2.properties
similarity index 51%
rename from integration-test/src/test/resources/log4j.properties
rename to integration-test/src/test/resources/log4j2.properties
index 295df53b6..92d744179 100644
--- a/integration-test/src/test/resources/log4j.properties
+++ b/integration-test/src/test/resources/log4j2.properties
@@ -16,27 +16,36 @@
#
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=DEBUG, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = debug
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
# Silence 3rd party libraries.
-log4j.logger.org.apache.livy.rsc=INFO
-log4j.logger.org.apache.livy.shaded=INFO
-log4j.logger.com.decodified=WARN
-log4j.logger.com.ning.http=WARN
-log4j.logger.org.apache.hadoop=WARN
-log4j.logger.org.eclipse.jetty=WARN
-log4j.logger.net.schmizz=WARN
+logger.livy_rsc.name = org.apache.livy.rsc
+logger.livy_rsc.level = info
+logger.livy_shaded.name = org.apache.livy.shaded
+logger.livy_shaded.level = info
+logger.decodified.name = com.decodified
+logger.decodified.level = warn
+logger.ning_http.name = com.ning.http
+logger.ning_http.level = warn
+logger.hadoop.name = org.apache.hadoop
+logger.hadoop.level = warn
+logger.schmizz.name = net.schmizz
+logger.schmizz.level = warn
+logger.jetty.name = org.eclipse.jetty
+logger.jetty.level = warn
diff --git a/pom.xml b/pom.xml
index fba6efcc8..16d26d6b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,6 @@
2.10.1
compile
1.7.36
- 1.2.26
3.3.4
${spark.scala-2.12.version}
5.6.0
@@ -97,6 +96,7 @@
9.4.56.v20240826
4.13.1
0.9.3
+ 2.26.0
4.0.2
3.1.0
1.10.19
@@ -282,9 +282,25 @@
- ch.qos.reload4j
- reload4j
- ${reload4j.version}
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j.version}
+
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
+ ${log4j.version}
@@ -378,6 +394,14 @@
org.slf4j
slf4j-log4j12
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -414,6 +438,14 @@
com.sun.jersey
jersey-server
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -443,6 +475,14 @@
com.sun.jersey
jersey-server
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -483,6 +523,14 @@
org.codehaus.jackson
jackson-xc
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -495,6 +543,18 @@
log4j
log4j
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -512,6 +572,18 @@
com.sun.jersey
jersey-core
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -566,6 +638,18 @@
org.codehaus.jackson
jackson-jaxrs
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -593,6 +677,18 @@
com.sun.jersey
jersey-client
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ ch.qos.reload4j
+ reload4j
+
+
+ org.slf4j
+ slf4j-reload4j
+
@@ -857,7 +953,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
${slf4j.version}
diff --git a/repl/pom.xml b/repl/pom.xml
index b3e96324f..7103b1b18 100644
--- a/repl/pom.xml
+++ b/repl/pom.xml
@@ -84,8 +84,23 @@
- ch.qos.reload4j
- reload4j
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-api
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-core
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
provided
@@ -158,7 +173,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
provided
diff --git a/client-http/src/test/resources/log4j.properties b/repl/src/test/resources/log4j2.properties
similarity index 63%
rename from client-http/src/test/resources/log4j.properties
rename to repl/src/test/resources/log4j2.properties
index 9a1c19f26..ab02104c6 100644
--- a/client-http/src/test/resources/log4j.properties
+++ b/repl/src/test/resources/log4j2.properties
@@ -16,22 +16,24 @@
#
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=INFO, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
# Ignore messages below warning level from Jetty, because it's a bit verbose
-log4j.logger.org.apache.livy.shaded=INFO
-log4j.logger.org.eclipse.jetty=WARN
+logger.jetty.name = org.sparkproject.jetty
+logger.jetty.level = warn
diff --git a/repl/src/test/scala/org/apache/livy/repl/ReplDriverSuite.scala b/repl/src/test/scala/org/apache/livy/repl/ReplDriverSuite.scala
index da64577e4..e2a753af9 100644
--- a/repl/src/test/scala/org/apache/livy/repl/ReplDriverSuite.scala
+++ b/repl/src/test/scala/org/apache/livy/repl/ReplDriverSuite.scala
@@ -39,7 +39,7 @@ class ReplDriverSuite extends FunSuite with LivyBaseUnitTestSuite {
test("start a repl session using the rsc") {
val client = new LivyClientBuilder()
- .setConf(SparkLauncher.DRIVER_MEMORY, "512m")
+ .setConf(SparkLauncher.DRIVER_MEMORY, "1024m")
.setConf(SparkLauncher.DRIVER_EXTRA_CLASSPATH, sys.props("java.class.path"))
.setConf(SparkLauncher.EXECUTOR_EXTRA_CLASSPATH, sys.props("java.class.path"))
.setConf(RSCConf.Entry.LIVY_JARS.key(), "")
diff --git a/rsc/pom.xml b/rsc/pom.xml
index c45d37619..c5f9659af 100644
--- a/rsc/pom.xml
+++ b/rsc/pom.xml
@@ -87,8 +87,23 @@
provided
- ch.qos.reload4j
- reload4j
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-api
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-core
+ provided
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
provided
@@ -118,7 +133,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
provided
diff --git a/rsc/src/test/resources/log4j.properties b/rsc/src/test/resources/log4j.properties
deleted file mode 100644
index 6143ee577..000000000
--- a/rsc/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,26 +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 everything to be logged to the file target/unit-tests.log
-log4j.rootCategory=WARN, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
-
-# Silence some verbose logs.
-log4j.logger.org.spark-project.jetty=WARN
diff --git a/repl/src/test/resources/log4j.properties b/rsc/src/test/resources/log4j2.properties
similarity index 63%
rename from repl/src/test/resources/log4j.properties
rename to rsc/src/test/resources/log4j2.properties
index a54d27de9..ab02104c6 100644
--- a/repl/src/test/resources/log4j.properties
+++ b/rsc/src/test/resources/log4j2.properties
@@ -16,22 +16,24 @@
#
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=INFO, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
# Ignore messages below warning level from Jetty, because it's a bit verbose
-log4j.logger.org.spark-project.jetty=WARN
-org.spark-project.jetty.LEVEL=WARN
+logger.jetty.name = org.sparkproject.jetty
+logger.jetty.level = warn
diff --git a/scala-api/pom.xml b/scala-api/pom.xml
index 991fb4412..9c004d0c7 100644
--- a/scala-api/pom.xml
+++ b/scala-api/pom.xml
@@ -90,7 +90,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
provided
diff --git a/scala-api/src/test/resources/log4j.properties b/scala-api/src/test/resources/log4j2.properties
similarity index 63%
rename from scala-api/src/test/resources/log4j.properties
rename to scala-api/src/test/resources/log4j2.properties
index 7f24092ff..ab02104c6 100644
--- a/scala-api/src/test/resources/log4j.properties
+++ b/scala-api/src/test/resources/log4j2.properties
@@ -14,21 +14,26 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=INFO, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
+
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
+
# Ignore messages below warning level from Jetty, because it's a bit verbose
-log4j.logger.org.spark-project.jetty=WARN
-org.spark-project.jetty.LEVEL=WARN
+logger.jetty.name = org.sparkproject.jetty
+logger.jetty.level = warn
diff --git a/scala-api/src/test/scala/org/apache/livy/scalaapi/ScalaClientTest.scala b/scala-api/src/test/scala/org/apache/livy/scalaapi/ScalaClientTest.scala
index a716f5856..48c80d07e 100644
--- a/scala-api/src/test/scala/org/apache/livy/scalaapi/ScalaClientTest.scala
+++ b/scala-api/src/test/scala/org/apache/livy/scalaapi/ScalaClientTest.scala
@@ -182,7 +182,7 @@ object ScalaClientTest {
} else {
val classpath: String = System.getProperty("java.class.path")
conf.put("spark.app.name", "SparkClientSuite Remote App")
- conf.put(SparkLauncher.DRIVER_MEMORY, "512m")
+ conf.put(SparkLauncher.DRIVER_MEMORY, "1024m")
conf.put(SparkLauncher.DRIVER_EXTRA_CLASSPATH, classpath)
conf.put(SparkLauncher.EXECUTOR_EXTRA_CLASSPATH, classpath)
}
diff --git a/server/pom.xml b/server/pom.xml
index 29fe3555c..8b3ebeb97 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -164,10 +164,18 @@
log4j
log4j
+
+ org.slf4j
+ slf4j-api
+
org.slf4j
slf4j-log4j12
+
+ log4j
+ log4j
+
@@ -231,7 +239,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
diff --git a/server/src/test/resources/log4j.properties b/server/src/test/resources/log4j2.properties
similarity index 60%
rename from server/src/test/resources/log4j.properties
rename to server/src/test/resources/log4j2.properties
index 9195bd934..a5fe75df3 100644
--- a/server/src/test/resources/log4j.properties
+++ b/server/src/test/resources/log4j2.properties
@@ -16,24 +16,29 @@
#
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=INFO, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = info
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
# Silence some noisy libraries.
-log4j.logger.org.apache.http=WARN
-log4j.logger.org.apache.spark=INFO
-log4j.logger.org.eclipse.jetty=WARN
-log4j.logger.org.spark-project.jetty=WARN
+logger.http.name = org.apache.http
+logger.http.level = warn
+logger.spark.name = org.apache.spark
+logger.spark.level = info
+logger.jetty.name = org.sparkproject.jetty
+logger.jetty.level = warn
+
diff --git a/thriftserver/client/pom.xml b/thriftserver/client/pom.xml
index 2744d343d..7c6a5200c 100644
--- a/thriftserver/client/pom.xml
+++ b/thriftserver/client/pom.xml
@@ -39,6 +39,18 @@
org.apache.hbase
*
+
+ org.eclipse.jetty
+ apache-jsp
+
+
+ log4j
+ log4j
+
+
+ org.slf4j
+ slf4j-log4j12
+
diff --git a/thriftserver/server/pom.xml b/thriftserver/server/pom.xml
index 759a75174..17a9f70eb 100644
--- a/thriftserver/server/pom.xml
+++ b/thriftserver/server/pom.xml
@@ -103,7 +103,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
org.apache.thrift
@@ -141,6 +141,10 @@
org.apache.logging.log4j
log4j-slf4j-impl
+
+ log4j
+ log4j
+
org.slf4j
slf4j-log4j12
diff --git a/thriftserver/server/src/test/resources/log4j.properties b/thriftserver/server/src/test/resources/log4j2.properties
similarity index 56%
rename from thriftserver/server/src/test/resources/log4j.properties
rename to thriftserver/server/src/test/resources/log4j2.properties
index 72bab7053..23bf98e76 100644
--- a/thriftserver/server/src/test/resources/log4j.properties
+++ b/thriftserver/server/src/test/resources/log4j2.properties
@@ -16,24 +16,30 @@
#
# Set everything to be logged to the file target/unit-tests.log
-test.appender=file
-log4j.rootCategory=WARN, ${test.appender}
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.append=true
-log4j.appender.file.file=target/unit-tests.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n
+rootLogger.level = warn
+rootLogger.appenderRef.file.ref = ${sys:test.appender:-File}
+
+appender.file.type = File
+appender.file.name = File
+appender.file.fileName = target/unit-tests.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yy/MM/dd HH:mm:ss.SSS} %t %p %c{1}: %m%n%ex
# Tests that launch java subprocesses can set the "test.appender" system property to
# "console" to avoid having the child process's logs overwrite the unit test's
# log file.
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS} %t: %m%n
+appender.console.type = Console
+appender.console.name = console
+appender.console.target = SYSTEM_ERR
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %t: %m%n%ex
# Enable DEBUG logs for Livy classes (with some exceptions).
-log4j.logger.org.apache.livy=DEBUG
-log4j.logger.org.apache.livy.rsc=INFO
-log4j.logger.org.apache.livy.shaded=INFO
-log4j.logger.org.apache.livy.thriftserver.LivyCLIService=INFO
+logger.livy.name = org.apache.livy
+logger.livy.level = debug
+logger.livy_rsc.name = org.apache.livy.rsc
+logger.livy_rsc.level = info
+logger.livy_shaded.name = org.apache.livy.shaded
+logger.livy_shaded.level = info
+logger.livy_cli_service.name = org.apache.livy.thriftserver.LivyCLIService
+logger.livy_cli_service.level = info
diff --git a/thriftserver/session/pom.xml b/thriftserver/session/pom.xml
index e7be3fe92..84ad78226 100644
--- a/thriftserver/session/pom.xml
+++ b/thriftserver/session/pom.xml
@@ -38,7 +38,7 @@
org.slf4j
- slf4j-reload4j
+ slf4j-api
provided