diff --git a/create_server_dist.sh b/create_server_dist.sh
index e277fdf9..86b7ab59 100755
--- a/create_server_dist.sh
+++ b/create_server_dist.sh
@@ -90,6 +90,7 @@ cp ${INSTALL_DIR}/clean_es_history.sh ${CONFIG_TEMPLATES
# ==============================================
TOMCAT_LIB_DIR=${CWS_TOMCAT_ROOT}/lib
TOMCAT_BIN_DIR=${CWS_TOMCAT_ROOT}/bin
+TOMCAT_CONF_DIR=${CWS_TOMCAT_ROOT}/conf
print 'Installing key and trust store to Tomcat...'
cp ${INSTALL_DIR}/.keystore ${CWS_TOMCAT_ROOT}/conf/.keystore
@@ -116,11 +117,10 @@ print 'Installing core libraries to Tomcat...'
cp ${ROOT}/cws-core/target/cws-core.jar ${TOMCAT_LIB_DIR}
rm -f ${TOMCAT_LIB_DIR}/slf4j*.jar
-cp ${ROOT}/cws-core/cws-core-libs/slf4j-log4j12-*.jar ${TOMCAT_LIB_DIR}
cp ${ROOT}/cws-core/cws-core-libs/slf4j-api-*.jar ${TOMCAT_LIB_DIR}
+cp ${ROOT}/cws-core/cws-core-libs/log4j-slf4j-impl*.jar ${TOMCAT_LIB_DIR}
cp ${ROOT}/cws-core/cws-core-libs/log4j-*.jar ${TOMCAT_LIB_DIR}
-cp ${ROOT}/cws-core/cws-core-libs/apache-log4j-extras-*.jar ${TOMCAT_LIB_DIR}
cp ${ROOT}/cws-core/cws-core-libs/jython*.jar ${TOMCAT_LIB_DIR}
print 'Installing cws-tasks libraries to Tomcat...'
@@ -188,14 +188,24 @@ cp ${INSTALL_DIR}/sql/core.afterstartup.sql.template ${CWS}/sql/cws/co
rm ${DIST}/snippets.java
rm ${DIST}/snippets.java.bak
-print 'Installing log4j Properties file to Tomcat...'
-cp ${INSTALL_DIR}/tomcat_lib/log4j.properties ${TOMCAT_LIB_DIR}
+print 'Setting up Log4J as the logging backend for Tomcat...'
+LOG4J2_LIB=${CWS_TOMCAT_ROOT}/log4j2/lib
+LOG4J2_CONF=${CWS_TOMCAT_ROOT}/log4j2/conf
+mkdir -p ${LOG4J2_LIB}
+mkdir -p ${LOG4J2_CONF}
+cp ${ROOT}/cws-core/cws-core-libs/log4j-api-*.jar ${LOG4J2_LIB}
+cp ${ROOT}/cws-core/cws-core-libs/log4j-core-*.jar ${LOG4J2_LIB}
+cp ${ROOT}/cws-core/cws-core-libs/log4j-appserver-*.jar ${LOG4J2_LIB}
+cp ${INSTALL_DIR}/tomcat_lib/log4j2-tomcat.properties ${LOG4J2_CONF}
+
+print 'Removing default logging.properties from Tomcat...'
+rm ${TOMCAT_CONF_DIR}/logging.properties
print 'Copying Installer scripts and libraries...'
cp ${ROOT}/utils.sh ${CWS}
cp ${ROOT}/cws-installer/cws-installer-libs/* ${CWS}/installer
cp ${ROOT}/cws-installer/target/cws-installer.jar ${CWS}/installer
-cp ${ROOT}/cws-installer/src/main/resources/log4j.properties ${CWS}/installer
+cp ${ROOT}/cws-installer/src/main/resources/log4j2.properties ${CWS}/installer
cp ${INSTALL_DIR}/configure.sh ${CWS}
cp ${INSTALL_DIR}/installerPresets.properties ${CWS}/config
diff --git a/cws-adaptation-engine/pom.xml b/cws-adaptation-engine/pom.xml
index d550ef83..4417dfe4 100644
--- a/cws-adaptation-engine/pom.xml
+++ b/cws-adaptation-engine/pom.xml
@@ -19,17 +19,10 @@
-
-
- org.slf4j
- slf4j-log4j12
- provided
-
-
-
- log4j
- apache-log4j-extras
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
diff --git a/cws-adaptation/pom.xml b/cws-adaptation/pom.xml
index 7394292b..f411adcb 100644
--- a/cws-adaptation/pom.xml
+++ b/cws-adaptation/pom.xml
@@ -12,17 +12,11 @@
gov.nasa.jpl.ammos.ids.cws
cws-service
-
-
-
- org.slf4j
- slf4j-log4j12
- provided
-
-
+
- log4j
- apache-log4j-extras
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
diff --git a/cws-core/pom.xml b/cws-core/pom.xml
index f595c185..eca6249a 100644
--- a/cws-core/pom.xml
+++ b/cws-core/pom.xml
@@ -12,18 +12,17 @@
-
-
-
- org.slf4j
- slf4j-log4j12
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
provided
-
-
-
+
+
+
- log4j
- apache-log4j-extras
+ org.apache.logging.log4j
+ log4j-appserver
diff --git a/cws-engine-service/pom.xml b/cws-engine-service/pom.xml
index b880a4fa..54009394 100644
--- a/cws-engine-service/pom.xml
+++ b/cws-engine-service/pom.xml
@@ -22,18 +22,11 @@
-
-
-
- org.slf4j
- slf4j-log4j12
- provided
-
-
-
+
- log4j
- apache-log4j-extras
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
diff --git a/cws-installer/pom.xml b/cws-installer/pom.xml
index ba971438..ee408166 100644
--- a/cws-installer/pom.xml
+++ b/cws-installer/pom.xml
@@ -13,17 +13,10 @@
-
-
- org.slf4j
- slf4j-log4j12
- provided
-
-
-
- log4j
- apache-log4j-extras
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ provided
diff --git a/cws-installer/src/main/resources/log4j.properties b/cws-installer/src/main/resources/log4j.properties
deleted file mode 100644
index 1e0cda8a..00000000
--- a/cws-installer/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-log4j.rootLogger=INFO, CA
-
-# ConsoleAppender
-log4j.appender.CA=org.apache.log4j.ConsoleAppender
-log4j.appender.CA.layout=org.apache.log4j.EnhancedPatternLayout
-log4j.appender.CA.layout.ConversionPattern=INSTALLER: %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
-log4j.logger.org.springframework=INFO
-log4j.logger.jpl.cws=INFO
-log4j.logger.javax.activation.level=INFO
-
-log4j.logger.org.apache.activemq.transport=INFO
diff --git a/cws-installer/src/main/resources/log4j2.properties b/cws-installer/src/main/resources/log4j2.properties
new file mode 100644
index 00000000..9ae79935
--- /dev/null
+++ b/cws-installer/src/main/resources/log4j2.properties
@@ -0,0 +1,46 @@
+#log4j.rootLogger=INFO, CA
+#
+## ConsoleAppender
+#log4j.appender.CA=org.apache.log4j.ConsoleAppender
+#log4j.appender.CA.layout=org.apache.log4j.EnhancedPatternLayout
+#log4j.appender.CA.layout.ConversionPattern=INSTALLER: %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
+#log4j.logger.org.springframework=INFO
+#log4j.logger.jpl.cws=INFO
+#log4j.logger.javax.activation.level=INFO
+#
+#log4j.logger.org.apache.activemq.transport=INFO
+#
+
+# 'status' refers to log messages from Log4j2 itself
+status = warn
+
+# console appender
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = INSTALLER: %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
+
+# configure loggers
+# Spring Framework
+logger.springframework.name = org.springframework
+logger.springframework.level = info
+logger.springframework.appenderRef.stdout.ref = STDOUT
+
+# CWS
+logger.cws.name = jpl.cws
+logger.cws.level = info
+logger.cws.appenderRef.stdout.ref = STDOUT
+
+# Javax
+logger.javax.name = javax.activation.level
+logger.javax.level = info
+logger.javax.appenderRef.stdout.ref = STDOUT
+
+# ActiveMQ
+logger.activemq.name = org.apache.activemq.transport
+logger.activemq.level = info
+logger.activemq.appenderRef.stdout.ref = STDOUT
+
+# ROOT
+rootLogger.level = info
+rootLogger.appenderRef.stdout.ref = STDOUT
\ No newline at end of file
diff --git a/cws-service/pom.xml b/cws-service/pom.xml
index 043286a6..e3548754 100644
--- a/cws-service/pom.xml
+++ b/cws-service/pom.xml
@@ -91,19 +91,12 @@
joda-time
-
- org.slf4j
- slf4j-log4j12
+ org.apache.logging.log4j
+ log4j-slf4j-impl
provided
-
-
- log4j
- apache-log4j-extras
-
-
org.freemarker
diff --git a/cws-tasks/pom.xml b/cws-tasks/pom.xml
index 69a59a7a..b385f3b9 100644
--- a/cws-tasks/pom.xml
+++ b/cws-tasks/pom.xml
@@ -30,18 +30,17 @@
-
- org.slf4j
- slf4j-log4j12
+ org.apache.logging.log4j
+ log4j-slf4j-impl
provided
-
- log4j
- apache-log4j-extras
-
+
+
+
+
+
- org.slf4j
- slf4j-log4j12
+ org.apache.logging.log4j
+ log4j-slf4j-impl
provided
-
-
-
- log4j
- apache-log4j-extras
-
gov.nasa.jpl.ammos.ids.cws
diff --git a/dev.sh b/dev.sh
index 95ac564a..74ff720e 100755
--- a/dev.sh
+++ b/dev.sh
@@ -66,7 +66,7 @@ print "Done configuring console installation."
# --------------
# START CONSOLE
# --------------
-LOG_FILE="server/apache-tomcat-${TOMCAT_VER}/logs/catalina.out"
+LOG_FILE="server/apache-tomcat-${TOMCAT_VER}/logs/cws.log"
BASE_PORT=8000
tab ${DIST}/console-only/cws "./start_cws.sh -d $BASE_PORT; tail -f $LOG_FILE"
diff --git a/install/docker/console-db-es-ls-kibana/cws-logstash.conf b/install/docker/console-db-es-ls-kibana/cws-logstash.conf
index 6b6f3121..e9190ae3 100644
--- a/install/docker/console-db-es-ls-kibana/cws-logstash.conf
+++ b/install/docker/console-db-es-ls-kibana/cws-logstash.conf
@@ -1,12 +1,20 @@
input {
file {
- path => "/cws_logs/catalina.out"
+ path => "/cws_logs/cws.log"
codec => multiline {
- pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{DATA}\s?: %{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
negate => true
what => "previous"
}
}
+ file {
+ path => "__CWS_CATALINA_OUT_PATH__/catalina.out"
+ codec => multiline {
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ negate => true
+ what => "previous"
+ }
+ }
}
filter {
@@ -16,9 +24,9 @@ filter {
grok {
match => [
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
"message", '^(?%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME}) %{DATA:logLevel}\s+(\[%{DATA:threadName}\]\s+)?%{GREEDYDATA:msgBody}',
"message", '%{GREEDYDATA:msgBody}'
]
diff --git a/install/docker/cws-image/wait_for_mariadb.sh b/install/docker/cws-image/wait_for_mariadb.sh
index 5a69dd78..2f55e1b8 100755
--- a/install/docker/cws-image/wait_for_mariadb.sh
+++ b/install/docker/cws-image/wait_for_mariadb.sh
@@ -34,4 +34,4 @@ done
exec "$@"
-tail -f cws/server/apache-tomcat-*/logs/catalina.out
+tail -f cws/server/apache-tomcat-*/logs/cws.log
diff --git a/install/docker/es-only/cws-logstash.conf b/install/docker/es-only/cws-logstash.conf
index 6b6f3121..a008f9b3 100644
--- a/install/docker/es-only/cws-logstash.conf
+++ b/install/docker/es-only/cws-logstash.conf
@@ -1,12 +1,20 @@
input {
file {
- path => "/cws_logs/catalina.out"
+ path => "/cws_logs/cws.log"
codec => multiline {
- pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{DATA}\s?: %{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
negate => true
what => "previous"
}
}
+ file {
+ path => "__CWS_CATALINA_OUT_PATH__/catalina.out"
+ codec => multiline {
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ negate => true
+ what => "previous"
+ }
+ }
}
filter {
@@ -16,9 +24,9 @@ filter {
grok {
match => [
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
"message", '^(?%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME}) %{DATA:logLevel}\s+(\[%{DATA:threadName}\]\s+)?%{GREEDYDATA:msgBody}',
"message", '%{GREEDYDATA:msgBody}'
]
diff --git a/install/docker/worker-ls/cws-logstash.conf b/install/docker/worker-ls/cws-logstash.conf
index c06edbb1..8f588e57 100644
--- a/install/docker/worker-ls/cws-logstash.conf
+++ b/install/docker/worker-ls/cws-logstash.conf
@@ -1,12 +1,20 @@
input {
file {
- path => "/cws_logs/catalina.out"
+ path => "/cws_logs/cws.log"
codec => multiline {
- pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{DATA}\s?: %{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
negate => true
what => "previous"
}
}
+ file {
+ path => "__CWS_CATALINA_OUT_PATH__/catalina.out"
+ codec => multiline {
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ negate => true
+ what => "previous"
+ }
+ }
}
filter {
@@ -16,9 +24,9 @@ filter {
grok {
match => [
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
"message", '^(?%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME}) %{DATA:logLevel}\s+(\[%{DATA:threadName}\]\s+)?%{GREEDYDATA:msgBody}',
"message", '%{GREEDYDATA:msgBody}'
]
diff --git a/install/logging/cws-logstash.conf b/install/logging/cws-logstash.conf
index 4cdbe92b..d759ac5c 100644
--- a/install/logging/cws-logstash.conf
+++ b/install/logging/cws-logstash.conf
@@ -1,12 +1,20 @@
input {
file {
- path => "__CWS_CATALINA_OUT_PATH__/catalina.out"
+ path => "__CWS_CATALINA_OUT_PATH__/cws.log"
codec => multiline {
- pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{DATA}\s?: %{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
negate => true
what => "previous"
}
}
+ file {
+ path => "__CWS_CATALINA_OUT_PATH__/catalina.out"
+ codec => multiline {
+ pattern => "(^%{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM))|(^%{TIMESTAMP_ISO8601})|(^%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME})"
+ negate => true
+ what => "previous"
+ }
+ }
}
filter {
@@ -17,9 +25,9 @@ filter {
grok {
match => [
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
- "message", '%{DATA:program}\s?: %{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\]\[%{DATA:procDefKey}\]\[%{DATA:procInstId}\]\[%{DATA:actInstId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - \[%{DATA:cwsHost}\]\[%{DATA:cwsWorkerId}\] %{GREEDYDATA:msgBody}',
+ "message", '%{TIMESTAMP_ISO8601:logdate} %{DATA:logLevel} +\[%{DATA:threadName}\] .* - %{GREEDYDATA:msgBody}',
"message", '^(?%{MONTHDAY}-%{MONTH}-%{YEAR} %{TIME}) %{DATA:logLevel}\s+(\[%{DATA:threadName}\]\s+)?%{GREEDYDATA:msgBody}',
"message", '%{GREEDYDATA:msgBody}'
]
diff --git a/install/start_cws.sh b/install/start_cws.sh
index acc62a95..ede68fc0 100755
--- a/install/start_cws.sh
+++ b/install/start_cws.sh
@@ -258,7 +258,9 @@ print "Waiting for CWS Server to startup..."
#print " E = ERROR"
#print " e = Error"
#print " x = Exception"
-tail -f ${CWS_TOMCAT_HOME}/logs/catalina.out | while read LOGLINE
+# wait for cws.log to come up (won't exist until CWS is running & log4j2 is loaded)
+while [ ! -f ${CWS_TOMCAT_HOME}/logs/cws.log ]; do sleep 1; done
+tail -f ${CWS_TOMCAT_HOME}/logs/cws.log | while read LOGLINE
do
printf "."
#if [[ "${LOGLINE}" == *"WARN"* ]]; then
@@ -273,7 +275,7 @@ do
#if [[ "${LOGLINE}" == *"Exception"* ]]; then
# printf "x"
#fi
- [[ "${LOGLINE}" == *"org.apache.catalina.startup.Catalina.start Server startup in"* ]] && pkill -P $$ tail
+ [[ "${LOGLINE}" == *"Server startup in"* ]] && pkill -P $$ tail
done
echo ""
@@ -299,7 +301,6 @@ fi
# =======================
# REMOVE UNUSED LOG FILES
# =======================
-rm `ls ${CWS_TOMCAT_HOME}/logs/*manager*`
if [[ "${INSTALL_TYPE}" = "3" ]]; then
rm ${CWS_TOMCAT_HOME}/logs/localhost*
diff --git a/install/tomcat_bin/setenv.sh b/install/tomcat_bin/setenv.sh
index 8bcdc411..0ab8aff4 100644
--- a/install/tomcat_bin/setenv.sh
+++ b/install/tomcat_bin/setenv.sh
@@ -25,6 +25,8 @@
#-Djava.net.preferIPv4Stack=true
#-Djavax.net.ssl.trustStore=__CWS_TOMCAT_ROOT__/lib/cws_truststore.jks"
+# Configure Log4J2 as logging backend for Tomcat
+export CLASSPATH=__CWS_TOMCAT_ROOT__/log4j2/lib/*:__CWS_TOMCAT_ROOT__/log4j2/conf
export CATALINA_OPTS="-Xmx8g -server -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=__CWS_JMX_PORT__ -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Djava.net.preferIPv4Stack=true -Djavax.net.ssl.trustStore=__CWS_TOMCAT_ROOT__/lib/cws_truststore.jks"
diff --git a/install/tomcat_lib/log4j.properties b/install/tomcat_lib/log4j.properties
deleted file mode 100644
index d9cd5e0a..00000000
--- a/install/tomcat_lib/log4j.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-log4j.rootLogger=INFO, CATALINA
-
-#log4j.logger.com.amazonaws=TRACE
-log4j.logger.org.camunda=INFO
-log4j.logger.org.camunda.bpm.engine.cmd=WARN
-log4j.logger.org.camunda.bpm.engine.persistence=WARN
-log4j.logger.org.springframework=INFO
-log4j.logger.jpl.cws=DEBUG
-log4j.logger.javax.activation.level=INFO
-
-log4j.logger.org.apache.activemq.transport=INFO
-
-
-
-log4j.appender.CATALINA=org.apache.log4j.rolling.RollingFileAppender
-log4j.appender.CATALINA.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
-log4j.appender.CATALINA.rollingPolicy.ActiveFileName=${catalina.base}/logs/catalina.out
-log4j.appender.CATALINA.rollingPolicy.FileNamePattern=${catalina.base}/logs/catalina.%d{yyyy-MM-dd}.out
-log4j.appender.CATALINA.layout=org.apache.log4j.EnhancedPatternLayout
-#
-# REMOVE THE "L" option when this goes into production
-# TODO: document what the "L" option is
-#
-log4j.appender.CATALINA.layout.ConversionPattern=CWS : %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
-
-
-
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.Encoding=UTF-8
-log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=CWS : %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
diff --git a/install/tomcat_lib/log4j2-tomcat.properties b/install/tomcat_lib/log4j2-tomcat.properties
new file mode 100644
index 00000000..2dbc4fa0
--- /dev/null
+++ b/install/tomcat_lib/log4j2-tomcat.properties
@@ -0,0 +1,75 @@
+# Logging configuration
+# Both tomcat and CWS use Log4J2 backend
+
+# all stdout goes to catalina.out at startup
+# CWS & other packages log to cws.log after startup
+
+# 'status' refers to log messages from Log4j2 itself
+status = warn
+# how often to check this configuration file for changes
+monitorInterval = 30
+
+# file appender
+# logs to cws.log, rotating to cws.yyyy-MM-dd.out every day
+appender.rolling.type = RollingFile
+appender.rolling.name = RollingFile
+appender.rolling.fileName = ${sys:catalina.base}/logs/cws.log
+appender.rolling.filePattern = ${sys:catalina.base}/logs/cws.%d{yyyy-MM-dd}.log
+appender.rolling.layout.type = PatternLayout
+appender.rolling.layout.pattern = %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
+appender.rolling.policies.type = Policies
+appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
+appender.rolling.policies.time.interval = 1
+appender.rolling.policies.time.modulate = true
+appender.rolling.strategy.type = DefaultRolloverStrategy
+
+### LOG RETENTION SETTINGS ###
+# to keep all logs (default), use:
+appender.rolling.strategy.fileIndex = nomax
+# to delete old logs, comment the above line and replace with below to keep 30 days of logs. update per your needs.
+#appender.rolling.strategy.max = 30
+
+# Uncomment if you want to keep logging to catalina.out after Log4j2 takes over.
+# You will need to externally configure rotation on catalina.out if you do this, otherwise it will continue to grow
+
+#appender.CONSOLE.type = Console
+#appender.CONSOLE.name = STDOUT
+#appender.CONSOLE.layout.type = PatternLayout
+#appender.CONSOLE.layout.pattern = %d{ISO8601}{UTC} %-5p [%20.20t] %30.30c(%4.4L) - %m%n
+#rootLogger.appenderRef.stdout.ref = STDOUT
+
+## Configure which loggers log to which appenders
+
+# Camunda
+logger.camunda.name = org.camunda
+logger.camunda.level = info
+logger.camunda.appenderRef.stdout.ref = RollingFile
+
+# Camunda Engine
+logger.camundaEngine.name = org.camunda.bpmn.engine
+logger.camundaEngine.level = warn
+logger.camundaEngine.appenderRef.stdout.ref = RollingFile
+
+# Spring Framework
+logger.springframework.name = org.springframework
+logger.springframework.level = info
+logger.springframework.appenderRef.stdout.ref = RollingFile
+
+# CWS
+logger.cws.name = jpl.cws
+logger.cws.level = debug
+logger.cws.appenderRef.stdout.ref = RollingFile
+
+# Javax
+logger.javax.name = javax.activation.level
+logger.javax.level = info
+logger.javax.appenderRef.stdout.ref = RollingFile
+
+# ActiveMQ
+logger.activemq.name = org.apache.activemq.transport
+logger.activemq.level = info
+logger.activemq.appenderRef.stdout.ref = RollingFile
+
+# ROOT
+rootLogger.level = info
+rootLogger.appenderRef.rolling.ref = RollingFile
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 40dd0224..5e077ab1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,7 +74,9 @@
2.3.2
3.14.0
3.1.0
- 1.7.26
+
+ 2.17.1
+ 2.17.1
false
4.3.23.RELEASE
2.22.0
@@ -404,19 +406,20 @@
${commons-configuration.version}
-
+
+
+
- org.slf4j
- slf4j-log4j12
- ${slf4j.version}
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ ${slf4j-log4j2-bind.version}
provided
-
- log4j
- apache-log4j-extras
- 1.2.17
+ org.apache.logging.log4j
+ log4j-appserver
+ ${log4j.version}