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

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


The following commit(s) were added to refs/heads/master by this push:
     new def49c7  RANNGER-3355 : Update the current logging mechanism to use 
custom log4j conf
def49c7 is described below

commit def49c74559d24c2c7b0e9244754eebce79f07b1
Author: mateenmansoori <[email protected]>
AuthorDate: Wed Aug 4 11:46:48 2021 +0530

    RANNGER-3355 : Update the current logging mechanism to use custom log4j conf
    
    Signed-off-by: Mehul Parikh <[email protected]>
---
 embeddedwebserver/scripts/ranger-admin-services.sh |  8 +++-
 security-admin/scripts/db_setup.py                 | 43 +++++++++++++++++++---
 security-admin/scripts/install.properties          |  1 +
 security-admin/scripts/setup.sh                    |  8 ++++
 .../src/main/webapp/WEB-INF/log4j.properties       | 16 ++++++++
 5 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/embeddedwebserver/scripts/ranger-admin-services.sh 
b/embeddedwebserver/scripts/ranger-admin-services.sh
index 0bc06e1..d7cabbc 100755
--- a/embeddedwebserver/scripts/ranger-admin-services.sh
+++ b/embeddedwebserver/scripts/ranger-admin-services.sh
@@ -57,10 +57,16 @@ then
        RANGER_ADMIN_LOG_DIR=${XAPOLICYMGR_EWS_DIR}/logs
 fi
 
+if [ -z "${RANGER_ADMIN_LOG4J_CONF_FILE}" ]
+then
+       
RANGER_ADMIN_LOG4J_CONF_FILE=${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/log4j.properties
+fi
+
 if [ -z "${RANGER_PID_DIR_PATH}" ]
 then
         RANGER_PID_DIR_PATH=/var/run/ranger
 fi
+
 if [ -z "${RANGER_ADMIN_PID_NAME}" ]
 then
         RANGER_ADMIN_PID_NAME=rangeradmin.pid
@@ -85,7 +91,7 @@ fi
 SERVER_NAME=rangeradmin
 start() {
        SLEEP_TIME_AFTER_START=5
-       nohup  java -Dproc_rangeradmin ${JAVA_OPTS} 
-Dlog4j.configuration=file:${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/log4j.properties
  -Duser=${USER} -Dhostname=${HOSTNAME} ${DB_SSL_PARAM} 
-Dservername=${SERVER_NAME} -Dlogdir=${RANGER_ADMIN_LOG_DIR} 
-Dcatalina.base=${XAPOLICYMGR_EWS_DIR} -cp 
"${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf:${XAPOLICYMGR_EWS_DIR}/lib/*:${RANGER_JAAS_LIB_DIR}/*:${RANGER_JAAS_CONF_DIR}:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH"
 org.apache.ranger [...]
+       nohup  java -Dproc_rangeradmin ${JAVA_OPTS} 
-Dlog4j.configuration=file:${RANGER_ADMIN_LOG4J_CONF_FILE}  -Duser=${USER} 
-Dhostname=${HOSTNAME} ${DB_SSL_PARAM} -Dservername=${SERVER_NAME} 
-Dlogdir=${RANGER_ADMIN_LOG_DIR} -Dcatalina.base=${XAPOLICYMGR_EWS_DIR} -cp 
"${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf:${XAPOLICYMGR_EWS_DIR}/lib/*:${RANGER_JAAS_LIB_DIR}/*:${RANGER_JAAS_CONF_DIR}:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH"
 org.apache.ranger.server.tomcat.Embedded [...]
        VALUE_OF_PID=$!
        echo "Starting Apache Ranger Admin Service"
        sleep $SLEEP_TIME_AFTER_START
diff --git a/security-admin/scripts/db_setup.py 
b/security-admin/scripts/db_setup.py
index 4dcf6c9..29f0743 100644
--- a/security-admin/scripts/db_setup.py
+++ b/security-admin/scripts/db_setup.py
@@ -23,10 +23,12 @@ from os.path import basename
 import time
 import socket
 import glob
+import getpass
 globalDict = {}
 
 os_name = platform.system()
 os_name = os_name.upper()
+os_user = getpass.getuser()
 ranger_version=''
 jisql_debug=True
 retryPatchAfterSeconds=120
@@ -435,8 +437,17 @@ class BaseDB(object):
                version = ""
                className = ""
                app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
-               ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+               ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+               if ranger_log_dir == "$PWD":
+                       ranger_log_dir = 
os.path.join(RANGER_ADMIN_HOME,"ews","logs")
                javaFiles = 
os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch")
+               log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+               if not log4j_conf_file:
+                       log4j_conf_file = "file:" + os.path.join(app_home, 
"WEB-INF", "log4j.properties")
+               else:
+                       log4j_conf_file = "file:" + log4j_conf_file
+               log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+               log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
                if not os.path.exists(javaFiles):
                        log("[I] No java patches to apply!","info")
                else:
@@ -504,7 +515,7 @@ class BaseDB(object):
                                                                path = 
os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
                                                        elif os_name == 
"WINDOWS":
                                                                path = 
os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
-                                                       get_java_cmd = "%s 
-XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=200m -Xmx%s -Xms1g -Dlogdir=%s 
-Dlog4j.configuration=db_patch.log4j.xml -cp %s 
org.apache.ranger.patch.%s"%(self.JAVA_BIN,globalDict['ranger_admin_max_heap_size'],ranger_log,path,className)
+                                                       get_java_cmd = "%s 
-XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=200m -Xmx%s -Xms1g -Dlogdir=%s 
-Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s 
org.apache.ranger.patch.%s"%(self.JAVA_BIN,globalDict['ranger_admin_max_heap_size'],ranger_log_dir,log4j_conf_file,os_user,client_host,path,className)
                                                        if is_unix:
                                                                ret = 
subprocess.call(shlex.split(get_java_cmd))
                                                        elif os_name == 
"WINDOWS":
@@ -528,8 +539,18 @@ class BaseDB(object):
                className = "ChangePasswordUtil"
                version = dbversionBasedOnUserName(userName)
                app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
-               ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+               ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+               if ranger_log_dir == "$PWD":
+                       ranger_log_dir = 
os.path.join(RANGER_ADMIN_HOME,"ews","logs")
                filePath = 
os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch","cliutil","ChangePasswordUtil.class")
+               log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+               if not log4j_conf_file:
+                       log4j_conf_file = "file:" + os.path.join(app_home, 
"WEB-INF", "log4j.properties")
+               else:
+                       log4j_conf_file = "file:" + log4j_conf_file
+
+               log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+               log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
                if os.path.exists(filePath):
                        if version != "":
                                output = 
self.execute_query(self.get_version_query(version,'Y'))
@@ -585,7 +606,7 @@ class BaseDB(object):
                                                        path = 
os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
                                                elif os_name == "WINDOWS":
                                                        path = 
os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
-                                               get_java_cmd = "%s -Dlogdir=%s 
-Dlog4j.configuration=db_patch.log4j.xml -cp %s 
org.apache.ranger.patch.cliutil.%s %s %s %s 
-default"%(self.JAVA_BIN,ranger_log,path,className,'"'+userName+'"','"'+oldPassword+'"','"'+newPassword+'"')
+                                               get_java_cmd = "%s -Dlogdir=%s 
-Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s 
org.apache.ranger.patch.cliutil.%s %s %s %s 
-default"%(self.JAVA_BIN,ranger_log_dir,log4j_conf_file,os_user,client_host,path,className,'"'+userName+'"','"'+oldPassword+'"','"'+newPassword+'"')
                                                if is_unix:
                                                        status = 
subprocess.call(shlex.split(get_java_cmd))
                                                elif os_name == "WINDOWS":
@@ -616,8 +637,18 @@ class BaseDB(object):
                className = "ChangePasswordUtil"
                version = "DEFAULT_ALL_ADMIN_UPDATE"
                app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
-               ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+               ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+               if ranger_log_dir == "$PWD":
+                       ranger_log_dir = 
os.path.join(RANGER_ADMIN_HOME,"ews","logs")
                filePath = 
os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch","cliutil","ChangePasswordUtil.class")
+               log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+               if not log4j_conf_file:
+                       log4j_conf_file = "file:" + os.path.join(app_home, 
"WEB-INF", "log4j.properties")
+               else:
+                       log4j_conf_file = "file:" + log4j_conf_file
+
+               log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+               log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
                if os.path.exists(filePath):
                        if version != "":
                                output = 
self.execute_query(self.get_version_query(version,'Y'))
@@ -673,7 +704,7 @@ class BaseDB(object):
                                                        path = 
os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
                                                elif os_name == "WINDOWS":
                                                        path = 
os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s"
 )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home 
,self.SQL_CONNECTOR_JAR)
-                                               get_java_cmd = "%s -Dlogdir=%s 
-Dlog4j.configuration=db_patch.log4j.xml -cp %s 
org.apache.ranger.patch.cliutil.%s %s 
-default"%(self.JAVA_BIN,ranger_log,path,className, userPwdString)
+                                               get_java_cmd = "%s -Dlogdir=%s 
-Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s 
org.apache.ranger.patch.cliutil.%s %s 
-default"%(self.JAVA_BIN,ranger_log_dir,log4j_conf_file,os_user,client_host,path,className,
 userPwdString)
                                                if is_unix:
                                                        status = 
subprocess.call(shlex.split(get_java_cmd))
                                                elif os_name == "WINDOWS":
diff --git a/security-admin/scripts/install.properties 
b/security-admin/scripts/install.properties
index 6cde15d..ae7a00d 100644
--- a/security-admin/scripts/install.properties
+++ b/security-admin/scripts/install.properties
@@ -232,6 +232,7 @@ sso_publickey=
 
 # Custom log directory path
 RANGER_ADMIN_LOG_DIR=$PWD
+RANGER_ADMIN_LOG4J_CONF_FILE=
 
 # PID file path
 RANGER_PID_DIR_PATH=/var/run/ranger
diff --git a/security-admin/scripts/setup.sh b/security-admin/scripts/setup.sh
index df8d64f..f6f6f56 100755
--- a/security-admin/scripts/setup.sh
+++ b/security-admin/scripts/setup.sh
@@ -141,6 +141,7 @@ sso_enabled=$(get_prop 'sso_enabled' $PROPFILE)
 sso_providerurl=$(get_prop 'sso_providerurl' $PROPFILE)
 sso_publickey=$(get_prop 'sso_publickey' $PROPFILE)
 RANGER_ADMIN_LOG_DIR=$(eval echo "$(get_prop 'RANGER_ADMIN_LOG_DIR' 
$PROPFILE)")
+RANGER_ADMIN_LOG4J_CONF_FILE=$(eval echo "$(get_prop 
'RANGER_ADMIN_LOG4J_CONF_FILE' $PROPFILE)")
 RANGER_PID_DIR_PATH=$(eval echo "$(get_prop 'RANGER_PID_DIR_PATH' $PROPFILE)")
 
 spnego_principal=$(get_prop 'spnego_principal' $PROPFILE)
@@ -1482,6 +1483,13 @@ setup_install_files(){
                fi
        fi
 
+       if [ -z "${RANGER_ADMIN_LOG4J_CONF_FILE}" ]; then
+               
RANGER_ADMIN_LOG4J_CONF_FILE=${WEBAPP_ROOT}/WEB-INF/log4j.properties
+       fi
+       echo "export 
RANGER_ADMIN_LOG4J_CONF_FILE=${RANGER_ADMIN_LOG4J_CONF_FILE}" > 
${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-log4j-conf-file.sh
+       chmod a+rx 
${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-log4j-conf-file.sh
+       log "[I] RANGER ADMIN LOG4J CONF FILE : ${RANGER_ADMIN_LOG4J_CONF_FILE}"
+
        if [ -z "${RANGER_ADMIN_LOG_DIR}" ] || [ ${RANGER_ADMIN_LOG_DIR} == 
${XAPOLICYMGR_DIR} ]; then 
                 RANGER_ADMIN_LOG_DIR=${XAPOLICYMGR_DIR}/ews/logs;
         fi
diff --git a/security-admin/src/main/webapp/WEB-INF/log4j.properties 
b/security-admin/src/main/webapp/WEB-INF/log4j.properties
index b47554c..fce5143 100644
--- a/security-admin/src/main/webapp/WEB-INF/log4j.properties
+++ b/security-admin/src/main/webapp/WEB-INF/log4j.properties
@@ -45,6 +45,22 @@ log4j.appender.perf_appender.append=true
 log4j.appender.perf_appender.layout=org.apache.log4j.PatternLayout
 log4j.appender.perf_appender.layout.ConversionPattern=%d [%t] %m%n
 
+log4j.category.org.apache.ranger.perf=DEBUG, perf_appender
+
+# patch_logger
+log4j.appender.patch_logger=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.patch_logger.file=${logdir}/ranger_db_patch.log
+log4j.appender.patch_logger.datePattern='.'yyyy-MM-dd
+log4j.appender.patch_logger.append=true
+log4j.appender.patch_logger.layout=org.apache.log4j.PatternLayout
+log4j.appender.patch_logger.layout.ConversionPattern=%d [%t] %-5p %C{6} 
(%F:%L) - %m%n
+# patch_logger : category and additivity
+log4j.category.org.springframework=warn,patch_logger
+log4j.additivity.org.springframework=false
+
+log4j.category.org.apache.ranger.patch=info,patch_logger
+log4j.additivity.org.apache.ranger.patch=false
+
 
 # sql_appender
 log4j.appender.sql_appender=org.apache.log4j.DailyRollingFileAppender

Reply via email to