diff --git a/Dockerfile b/Dockerfile
index 00d7bb98..e0a77c38 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -110,7 +110,7 @@ RUN touch /opt/grouper/grouperEnv.sh \
# keep backup of files
RUN mkdir -p /opt/tier-support/originalFiles ; \
- cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties /opt/tier-support/originalFiles 2>/dev/null ; \
+ cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tier-support/originalFiles 2>/dev/null ; \
cp /etc/httpd/conf/httpd.conf /opt/tier-support/originalFiles 2>/dev/null ; \
cp /etc/httpd/conf.d/ssl-enabled.conf /opt/tier-support/originalFiles 2>/dev/null ; \
cp /etc/httpd/conf.d/httpd-shib.conf /opt/tier-support/originalFiles 2>/dev/null ; \
diff --git a/container_files/api/log4j.properties b/container_files/api/log4j.properties
deleted file mode 100644
index e66f0e33..00000000
--- a/container_files/api/log4j.properties
+++ /dev/null
@@ -1,95 +0,0 @@
-
-#
-# Copyright 2014 Internet2
-#
-# Licensed 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.
-#
-
-#${grouper.home} will be substituted with the System property "grouper.home", which must have a trailing \ or /
-# depending on your OS. Of course you can use absolute paths if you prefer
-
-
-#
-# log4j Configuration
-# $Id: log4j.example.properties,v 1.13 2009-12-18 13:56:51 tzeller Exp $
-#
-
-# Appenders
-
-## Grouper API error logging
-log4j.appender.grouper_error = org.apache.log4j.FileAppender
-log4j.appender.grouper_error.file = /tmp/logpipe
-log4j.appender.grouper_error.append = true
-log4j.appender.grouper_error.layout = org.apache.log4j.PatternLayout
-log4j.appender.grouper_error.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;grouper_error.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
-#log4j.appender.grouper_error.layout.ConversionPattern = %d{ISO8601}: %m%n
-
-log4j.appender.grouper_daemon = org.apache.log4j.DailyRollingFileAppender
-log4j.appender.grouper_daemon.File = /tmp/logpipe
-log4j.appender.grouper_daemon.append = true
-log4j.appender.grouper_daemon.layout = org.apache.log4j.PatternLayout
-log4j.appender.grouper_daemon.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;grouperDaemon.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
-
-log4j.appender.grouper_pspng = org.apache.log4j.FileAppender
-log4j.appender.grouper_pspng.File = /tmp/logpipe
-log4j.appender.grouper_pspng.append = true
-log4j.appender.grouper_pspng.layout = org.apache.log4j.PatternLayout
-log4j.appender.grouper_pspng.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;pspng.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
-
-log4j.appender.grouper_provisioning = org.apache.log4j.FileAppender
-log4j.appender.grouper_provisioning.file = /tmp/logpipe
-log4j.appender.grouper_provisioning.append = true
-log4j.appender.grouper_provisioning.layout = org.apache.log4j.PatternLayout
-log4j.appender.grouper_provisioning.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;provisioning.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
-
-
-# Loggers
-
-## Default logger; will log *everything*
-log4j.rootLogger = ERROR, grouper_error
-
-## All Internet2 (warn to grouper_error per default logger)
-log4j.logger.edu.internet2.middleware = WARN
-
-log4j.logger.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = DEBUG, grouper_daemon
-log4j.additivity.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = false
-
-log4j.logger.edu.internet2.middleware.grouper.pspng = INFO, grouper_pspng
-log4j.additivity.edu.internet2.middleware.grouper.pspng = false
-
-log4j.logger.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectLog = DEBUG, grouper_provisioning
-log4j.additivity.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectLog = false
-
-log4j.logger.edu.internet2.middleware.grouper.app.syncToGrouper.SyncToGrouperFromSqlDaemon = DEBUG
-
-log4j.logger.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogCommands = DEBUG
-
-log4j.logger.edu.internet2.middleware.grouper.stem.StemViewPrivilegeEsbListener = DEBUG
-
-log4j.logger.edu.internet2.middleware.grouper.stem.StemViewPrivilegeFullDaemonLogic = DEBUG
-
-#######################################################
-##Optional settings for debug logs
-#######################################################
-
-## Hooks debug info
-#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeTupleIncludeExcludeHook = DEBUG
-#log4j.logger.edu.internet2.middleware.grouper.Group = DEBUG
-
-#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeSecurityHook = DEBUG
-
-
-# added by grouper-installer
-log4j.logger.org.apache.tools.ant = WARN
-
-log4j.logger.edu.internet2.middleware.grouper.util.PerformanceLogger = INFO
\ No newline at end of file
diff --git a/container_files/api/log4j2.additionalLoggers.xml.txt b/container_files/api/log4j2.additionalLoggers.xml.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/container_files/api/log4j2.container.xml b/container_files/api/log4j2.container.xml
new file mode 100644
index 00000000..e360ddcb
--- /dev/null
+++ b/container_files/api/log4j2.container.xml
@@ -0,0 +1,94 @@
+
+
+
+ %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/container_files/tier-support/test/grouperContainerUnitTest.sh b/container_files/tier-support/test/grouperContainerUnitTest.sh
index 8305ad4f..343a479c 100644
--- a/container_files/tier-support/test/grouperContainerUnitTest.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTest.sh
@@ -5,7 +5,7 @@ if [ "$#" -ne 4 ]; then
exit 1
fi
-expectedSuccesses=716
+expectedSuccesses=715
export containerName=$1
export imageName=$2
diff --git a/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh b/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh
index 57325591..27c74f77 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh
@@ -42,7 +42,7 @@ testContainerQuickstart() {
assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties GROUPERSYSTEM_QUICKSTART_PASS
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper;"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper;"
assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600"
assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__"
diff --git a/container_files/tier-support/test/grouperContainerUnitTestScim.sh b/container_files/tier-support/test/grouperContainerUnitTestScim.sh
index 20467d63..26637757 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestScim.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestScim.sh
@@ -37,7 +37,7 @@ testContainerScim() {
assertFileNotContains /etc/httpd/conf.d/ssl-enabled.conf cachain.pem
assertFileContains /etc/httpd/conf.d/ssl-enabled.conf /etc/pki/tls/certs/localhost.crt
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-scim;"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-scim;"
assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600"
assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__"
diff --git a/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh b/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh
index 2caa2476..148b61d3 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh
@@ -42,8 +42,6 @@ testContainerSelfSigned() {
assertFileContains /etc/httpd/conf.d/grouper-www.conf "RemoteIPTrustedProxy 10.0.2.16/28"
- assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe"
-
assertEnvVar GROUPERSCIM_PROXY_PASS "#"
assertEnvVar GROUPERSCIM_URL_CONTEXT "grouper-ws-scim"
assertEnvVar GROUPERWS_PROXY_PASS "#"
diff --git a/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh b/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh
index 8b32ab56..e1d1a463 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh
@@ -21,14 +21,14 @@ testContainerSlashRoot() {
mkdir -p someDir/tmp
echo 'whatever' > someDir/tmp/temp.txt
mkdir -p someDir/opt/grouper/grouperWebapp/WEB-INF/classes
- echo 'someSettings' > someDir/opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties
+ echo 'someSettings' > someDir/opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt
docker run --detach --name $containerName --mount type=bind,src=$someDir,dst=/opt/grouper/slashRoot --publish 443:443 $imageName ui
sleep $globalSleepSecondsAfterRun
assertFileExists /tmp/temp.txt
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "someSettings"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "someSettings"
#rm -rf someDir
diff --git a/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh b/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
index a0af5750..9bbf34e1 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
@@ -41,8 +41,8 @@ testContainerUiSubimageNonroot() {
assertFileExists "/opt/grouper/grouperWebapp/WEB-INF/lib/grouper-messaging-activemq-$grouperVersion.jar"
assertFileExists "/opt/grouper/grouperWebapp/WEB-INF/libUiAndDaemon/grouper-messaging-activemq-$grouperVersion.jar"
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe"
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ui;"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "/tmp/logpipe"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ui;"
assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties grouperPasswordConfigOverride_UI_GrouperSystem_pass.elConfig
assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties thisPassIsCopyrightedDontUse
diff --git a/container_files/tier-support/test/grouperContainerUnitTestWs.sh b/container_files/tier-support/test/grouperContainerUnitTestWs.sh
index 710f9530..433ea3dc 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestWs.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestWs.sh
@@ -44,7 +44,7 @@ testContainerWs() {
assertFileContains /opt/tomee/conf/Catalina/localhost/grouper-ws.xml 'cookies="false"'
assertFileContains /opt/tomee/conf/web.xml "1"
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ws;"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ws;"
assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600"
assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__"
diff --git a/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh b/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh
index dfdf4f89..a89fab85 100644
--- a/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh
+++ b/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh
@@ -44,7 +44,7 @@ testContainerWsAuthn() {
assertFileContains /opt/tomee/conf/Catalina/localhost/grouper-ws.xml 'cookies="false"'
assertFileContains /opt/tomee/conf/web.xml "1"
- assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ws;"
+ assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ws;"
assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600"
assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__"
diff --git a/container_files/tomee/bin/setenv.sh b/container_files/tomee/bin/setenv.sh
index 369d5441..603fc570 100755
--- a/container_files/tomee/bin/setenv.sh
+++ b/container_files/tomee/bin/setenv.sh
@@ -1,4 +1,4 @@
CLASSPATH=/opt/tomee/bin/*
#JAVA_OPTS="-Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN"
-CATALINA_OPTS="-Xmx$GROUPER_MAX_MEMORY -XX:+UseG1GC -XX:+UseStringDeduplication -Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN -Dfile.encoding=UTF-8 -Dlog4j1.compatibility=true $GROUPER_EXTRA_CATALINA_OPTS"
+CATALINA_OPTS="-Xmx$GROUPER_MAX_MEMORY -XX:+UseG1GC -XX:+UseStringDeduplication -Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN -Dfile.encoding=UTF-8 $GROUPER_EXTRA_CATALINA_OPTS"
LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
diff --git a/container_files/tomee/conf/log4j2.xml b/container_files/tomee/conf/log4j2.xml
deleted file mode 100644
index a4bbc1b5..00000000
--- a/container_files/tomee/conf/log4j2.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- %d [%t] %-5p %c- %m%n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/container_files/usr-local-bin/librarySetupFiles.sh b/container_files/usr-local-bin/librarySetupFiles.sh
index 33381cf4..76618484 100644
--- a/container_files/usr-local-bin/librarySetupFiles.sh
+++ b/container_files/usr-local-bin/librarySetupFiles.sh
@@ -40,29 +40,32 @@ setupFiles_rsyncSlashRoot() {
}
setupFiles_localLogging() {
- if [ "$GROUPER_LOG_TO_HOST" = "true" ]
- then
- if [ "$GROUPER_ORIGFILE_LOG4J_PROPERTIES" = "true" ]; then
- cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.grouperContainerHost.properties /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties
- echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.grouperContainerHost.properties /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties, result: $?"
- else
- echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties is not the original file so will not be edited"
- fi
+ if [ "$GROUPER_LOG_TO_HOST" = "true" ]; then
+ sed -i "s|__FILE__||g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml
+ echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s|__FILE__||g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $?"
+ else
+ sed -i "s|__LOGPIPE__||g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml
+ echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s|__LOGPIPE__||g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $?"
fi
- if [ -f /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties ]; then
- echo >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties
- cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties
+
+ if [ -f /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt ]; then
+ additionalLoggersFile=`cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt`
+ # replace quote, but then double escape the result for some reason. this replaces quote with slash quote
+ additionalLoggersFile="$(sed s/\"/\\\\\\\"/g <<<$additionalLoggersFile)"
+ sed -i "s||$additionalLoggersFile|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml
returnCode=$?
- echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties, result: $returnCode"
+ echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s||$additionalLoggersFile|g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $returnCode"
if [ $returnCode != 0 ]; then exit $returnCode; fi
-
fi
}
setupFiles_loggingPrefix() {
- sed -i "s|__GROUPER_LOG_PREFIX__|$GROUPER_LOG_PREFIX|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties
- echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) Changing log prefix to $GROUPER_LOG_PREFIX in log4j.properties, result: $?"
+ sed -i "s|__GROUPER_LOG_PREFIX__|$GROUPER_LOG_PREFIX|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml
+ echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) Changing log prefix to $GROUPER_LOG_PREFIX in log4j2.xml, result: $?"
+
+ cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tomee/conf/log4j2.xml
+ echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tomee/conf/log4j2.xml, result: $?"
}
setupFiles_chownDirs() {
@@ -194,7 +197,7 @@ setupFiles_analyzeOriginalFiles() {
export GROUPER_ORIGFILE_SERVER_XML=false
fi
- setupFiles_originalFile /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties
+ setupFiles_originalFile /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml
original_file=$?
if [ -z "$GROUPER_ORIGFILE_LOG4J_PROPERTIES" ] && [[ $original_file -eq 0 ]]
then