From 7cfc706c3ec53a1d07ce76d079ffb50dbcde0bae Mon Sep 17 00:00:00 2001 From: rujia1019 <821681321@163.com> Date: Tue, 13 Oct 2020 18:05:14 +0800 Subject: [PATCH] RANGER-3032: Load log4j changes dynamically Signed-off-by: pradeep --- .../org/apache/ranger/server/tomcat/EmbeddedServer.java | 6 ++++++ .../org/apache/ranger/tagsync/process/TagSynchronizer.java | 6 ++++++ .../ranger/authentication/UnixAuthenticationService.java | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java index 9df95fbe77..f6d735c30c 100644 --- a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java +++ b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java @@ -45,6 +45,7 @@ import org.apache.catalina.valves.ErrorReportValve; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.security.SecureClientLogin; +import org.apache.log4j.PropertyConfigurator; import org.apache.ranger.credentialapi.CredentialReader; import javax.net.ssl.KeyManager; @@ -88,6 +89,11 @@ public EmbeddedServer(String[] args) { if (args.length > 0) { configFile = args[0]; } + + // load log configuration file dynamically if log4j.properties changed + String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1]; + PropertyConfigurator.configureAndWatch(logPropFile, 10000L); + EmbeddedServerUtil.loadRangerConfigProperties(configFile); } diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java index fefb6bfb52..1b0649f039 100644 --- a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java +++ b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java @@ -32,6 +32,7 @@ import org.apache.hadoop.security.SecureClientLogin; import org.apache.hadoop.security.UserGroupInformation; import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; import org.apache.ranger.tagsync.model.TagSink; import org.apache.ranger.tagsync.model.TagSource; @@ -53,6 +54,11 @@ public class TagSynchronizer { private volatile boolean isShutdownInProgress = false; public static void main(String[] args) { + + // load log configuration file dynamically if log4j.properties changed + String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1]; + PropertyConfigurator.configureAndWatch(logPropFile, 10000L); + TagSynchronizer tagSynchronizer = new TagSynchronizer(); TagSyncConfig config = TagSyncConfig.getInstance(); diff --git a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java index fa146c26a8..4d84a96487 100644 --- a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java +++ b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java @@ -43,7 +43,9 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; import org.apache.ranger.credentialapi.CredentialReader; import org.apache.ranger.plugin.util.XMLUtils; import org.apache.ranger.unixusersync.config.UserGroupSyncConfig; @@ -89,6 +91,11 @@ public class UnixAuthenticationService { private static final String[] UGSYNC_CONFIG_XML_FILES = { "ranger-ugsync-default.xml", "ranger-ugsync-site.xml" }; public static void main(String[] args) { + + // load log configuration file dynamically if log4j.properties changed + String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1]; + PropertyConfigurator.configureAndWatch(logPropFile, 10000L); + if (args.length > 0) { for (String s : args) { if ("-enableUnixAuth".equalsIgnoreCase(s)) {