Question
CGI
US
Last activity: 19 Jan 2022 0:12 EST
Need to stop logging DEBUG messages in PEGA 8.6.2
After installing Pega 8.6 (this has been several months now), there are thousands of DEBUG messages appearing in Tomcat's STDOUT file coming from Stream service, DDS, and Kafka that we cannot seem to turn off. These debug messages appear to be coming from a variety of different classes (but almost all appear to be Pega classes). They are NOT showing up in any of the Pega-specific logs but only in Tomcat's STDOUT file.
After installing Pega 8.6 (this has been several months now), there are thousands of DEBUG messages appearing in Tomcat's STDOUT file coming from Stream service, DDS, and Kafka that we cannot seem to turn off. These debug messages appear to be coming from a variety of different classes (but almost all appear to be Pega classes). They are NOT showing up in any of the Pega-specific logs but only in Tomcat's STDOUT file.
04:27:56.301 [New I/O worker #1] DEBUG c.p.c.s.service.SessionServiceImpl - Process new session request '0'
04:27:56.341 [New I/O worker #1] DEBUG c.p.c.session.service.LocalSession - Connected 'session [-301793279]'
04:27:56.390 [New I/O worker #1] DEBUG c.p.c.session.service.LocalSession - Requested: Create, session: session [-301793279]
04:14:48.365 [DataFlow-Service-PickingupRun-pySASBatchIndexClassesProcessor_Input:89, Access group: [PRPC:AsyncProcessor], Partitions=[0,1,18,19,2,3,4,5,8,9]] DEBUG o.a.k.c.consumer.internals.Fetcher - [Consumer clientId=consumer-31, groupId=null] Added READ_UNCOMMITTED fetch request for partition PYSASBATCHINDEXCLASSESPROCESSOR-19 at position FetchPosition{offset=0, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader= Proprietary information hidden:9092 (id: 1001 rack: null), epoch=-1}} to node Proprietary information hidden:9092 (id: 1001 rack: null)
04:14:48.365 [DataFlow-Service-PickingupRun-pyBatchIndexProcessor_Input:75, Access group: [PRPC:AsyncProcessor], Partitions=[11,12,13,14,15,16,17,18,7,8]] DEBUG o.a.k.c.consumer.internals.Fetcher - [Consumer clientId=consumer-24, groupId=null] Added READ_UNCOMMITTED fetch request for partition PYBATCHINDEXPROCESSOR-17 at position FetchPosition{offset=129, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader= Proprietary information hidden:9092 (id: 1001 rack: null), epoch=-1}} to node Proprietary information hidden:9092 (id: 1001 rack: null)
04:14:48.365 [DataFlow-Service-PickingupRun-pyBatchIndexClassesProcessor_Input:34, Access group: [PRPC:AsyncProcessor], Partitions=[10,14,15,16,17,18,19,7,8,9]] DEBUG o.a.k.c.consumer.internals.Fetcher - [Consumer clientId=consumer-3, groupId=null] Added READ_UNCOMMITTED fetch request for partition PYBATCHINDEXCLASSESPROCESSOR-8 at position FetchPosition{offset=18, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader= Proprietary information hidden:9092 (id: 1001 rack: null), epoch=-1}} to node Proprietary information hidden:9092 (id: 1001 rack: null)
04:15:03.709 [DataFlow-Auxiliary-MetricsTask:96] DEBUG o.a.k.clients.FetchSessionHandler - [Consumer clientId=consumer-67, groupId=df_run_metrics_subscription] Node 1001 sent an incremental fetch response for session 1948086777 with 0 response partition(s), 20 implied partition(s)
04:15:03.709 [DataFlow-Auxiliary-MetricsTask:96] DEBUG o.a.k.c.consumer.internals.Fetcher - [Consumer clientId=consumer-67, groupId=df_run_metrics_subscription] Added READ_UNCOMMITTED fetch request for partition df_run_metrics-3 at position FetchPosition{offset=10, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader= Proprietary information hidden:9092 (id: 1001 rack: null), epoch=-1}} to node Proprietary information hidden:9092 (id: 1001 rack: null)
04:15:03.709 [DataFlow-Auxiliary-MetricsTask:96] DEBUG o.a.k.c.consumer.internals.Fetcher - [Consumer clientId=consumer-67, groupId=df_run_metrics_subscription] Added READ_UNCOMMITTED fetch request for partition df_run_metrics-1 at position FetchPosition{offset=6, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader= Proprietary information hidden:9092 (id: 1001 rack: null), epoch=-1}} to node Proprietary information hidden:9092 (id: 1001 rack: null)
04:15:03.945 [ServicePulse-DataFlow-Pulse-Executor:25] DEBUG c.p.d.d.util.NativeSQLBatchReader - Performing query: SELECT "DF_RT"."PYRUNID" AS "pyRunID" FROM PEGA86_DATA.pr_data_decision_ddf_runtime "DF_RT" INNER JOIN ( SELECT "DF_OPT"."PYWORKOBJECTID" AS "SRCOL1" FROM PEGA86_DATA.pr_data_decision_ddf_run_opts "DF_OPT" WHERE ( "DF_OPT"."PYSERVICEINSTANCENAME" IN (? , ? ) ) ) "DF_OPT" ON ( ( "DF_RT"."PYRUNID" = "DF_OPT"."SRCOL1" ) ) WHERE ( "DF_RT"."PYSTATE" = ? AND "DF_RT"."PYRUNTYPE" IN (? , ? ) )
04:15:03.948 [ServicePulse-DataFlow-Pulse-Executor:25] DEBUG c.p.d.d.util.NativeSQLBatchReader - Query SELECT "DF_RT"."PYRUNID" AS "pyRunID" FROM PEGA86_DATA.pr_data_decision_ddf_runtime "DF_RT" INNER JOIN ( SELECT "DF_OPT"."PYWORKOBJECTID" AS "SRCOL1" FROM PEGA86_DATA.pr_data_decision_ddf_run_opts "DF_OPT" WHERE ( "DF_OPT"."PYSERVICEINSTANCENAME" IN (? , ? ) ) ) "DF_OPT" ON ( ( "DF_RT"."PYRUNID" = "DF_OPT"."SRCOL1" ) ) WHERE ( "DF_RT"."PYSTATE" = ? AND "DF_RT"."PYRUNTYPE" IN (? , ? ) ) executed (without reading results) in 3 ms.
04:13:50.672 [pool-83-thread-1] DEBUG o.a.k.clients.admin.KafkaAdminClient - [AdminClient clientId=adminclient-15] Waiting for the I/O thread to exit. Hard shutdown in 31535999995 ms.
04:13:50.673 [pool-83-thread-1] DEBUG o.a.k.clients.admin.KafkaAdminClient - [AdminClient clientId=adminclient-15] Kafka admin client closed.
Our prlog4j2.xml file is below whereby I believe all loggers have their logging level set to nothing finer than INFO.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%20.20t] [%10.10X{pegathread}] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{RequestorId} %X{userid} - %m%n"/>
<Filters>
<!--Deny message logged under ALERT log level-->
<ThresholdFilter level="ALERT" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
</Console>
<RollingRandomAccessFile name="PEGA" fileName="${sys:pega.logdir}/PegaRULES.log" filePattern="${sys:pega.logdir}/PegaRULES-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%10.10X{pegathread}] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{RequestorId} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Filters>
<!--Deny message logged under ALERT log level-->
<ThresholdFilter level="ALERT" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
<!-- RollingFile Appender for pegarules PERFORMANCE Alert logs -->
<RollingRandomAccessFile name="ALERT" fileName="${sys:pega.logdir}/PegaRULES-ALERT.log" filePattern="${sys:pega.logdir}/PegaRULES-ALERT-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<ThreadContextMapFilter onMatch="DENY" onMismatch="NEUTRAL" operator="or">
<KeyValuePair key="alertType" value="security"/>
</ThreadContextMapFilter>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaRULES-ALERTSECURITY logs -->
<RollingRandomAccessFile name="ALERTSECURITY" fileName="${sys:pega.logdir}/PegaRULES-ALERTSECURITY.log" filePattern="${sys:pega.logdir}/PegaRULES-ALERTSECURITY-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<ThreadContextMapFilter onMatch="ACCEPT" onMismatch="DENY" operator="or">
<KeyValuePair key="alertType" value="security"/>
</ThreadContextMapFilter>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaBIX logs -->
<RollingRandomAccessFile name="BIX" fileName="${sys:pega.logdir}/PegaBIX.log" filePattern="${sys:pega.logdir}/PegaBIX-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaRULES-SecurityEvent logs -->
<RollingRandomAccessFile name="SECURITYEVENT" fileName="${sys:pega.logdir}/PegaRULES-SecurityEvent.log" filePattern="${sys:pega.logdir}/PegaRULES-SecurityEvent-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaCLUSTER logs -->
<RollingRandomAccessFile name="CLUSTER" fileName="${sys:pega.logdir}/PegaCLUSTER.log" filePattern="${sys:pega.logdir}/PegaCLUSTER-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{RequestorId} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaDATAFLOW logs -->
<RollingRandomAccessFile name="DATAFLOW" fileName="${sys:pega.logdir}/PegaDATAFLOW.log" filePattern="${sys:pega.logdir}/PegaDATAFLOW-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d (%30.30c{3}) %-5p - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaMOBILE logs -->
<RollingRandomAccessFile name="MOBILE" fileName="${sys:pega.logdir}/PegaMOBILE.log" filePattern="${sys:pega.logdir}/PegaMOBILE-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaMOBILEBUILD logs -->
<RollingRandomAccessFile name="MOBILEBUILD" fileName="${sys:pega.logdir}/PegaMOBILEBUILD.log" filePattern="${sys:pega.logdir}/PegaMOBILEBUILD-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for USAGEMETRICS logs -->
<!-- Added for Usage Metrics -->
<RollingRandomAccessFile name="USAGEMETRICS" fileName="${sys:pega.logdir}/PegaUSAGE.json.log" filePattern="${sys:pega.logdir}/PegaUSAGE-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="1"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<asyncRoot>
<!--
<AppenderRef ref="CONSOLE" />
-->
<AppenderRef ref="CONSOLE" level="info"/>
<AppenderRef ref="PEGA"/>
<AppenderRef ref="ALERT" level="ALERT"/>
<AppenderRef ref="ALERTSECURITY" level="ALERT"/>
</asyncRoot>
<Logger name="com.pega.pegarules.session.internal.mgmt.SecurityEventLogger" additivity="false" level="info">
<AppenderRef ref="SECURITYEVENT"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.ExtractImpl" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.ExtractParameters" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.DatabaseUtilsCommonImpl" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.hazelcast" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="com.pega.hazelcast" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="org.apache.ignite" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="com.pega.MobileLogger" additivity="false" level="info">
<AppenderRef ref="MOBILE"/>
</Logger>
<Logger name="com.pega.MobileBuildLogger" additivity="false" level="info">
<AppenderRef ref="MOBILEBUILD"/>
</Logger>
<Logger name="com.pega.dsm.dnode.impl.dataflow.service.DataFlowDiagnosticsFileLogger" additivity="false" level="info">
<AppenderRef ref="DATAFLOW"/>
</Logger>
<!-- Added for Usage Metrics -->
<AsyncLogger name="com.pega.pegarules.session.internal.usagemetrics" additivity="false" level="USAGE">
<AppenderRef ref="USAGEMETRICS"/>
</AsyncLogger>
</Loggers>
</Configuration>
Has anyone seen this problem or can help determine what setting might be missing to ensure no logging messages of any kind are written to the Tomcat STDOUT file?
In addition, below is our logging.properties file from our {TomcatHome}/conf directory.
# 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.
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
#1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
#2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.level = INFO
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
#3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.level = INFO
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.level = INFO
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
#java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE
# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE
# To see debug messages for HTTP/2 handling, uncomment the following line:
#org.apache.coyote.http2.level = FINE
# To see debug messages for WebSocket handling, uncomment the following line:
#org.apache.tomcat.websocket.level = FINE
com.pega.level = INFO