MethodServer
Einrichten des Loggings für die MethodenServer.
Prozedur
1. Erforderlich. Zur Modifikation der Logging-Einstellungen öffnen Sie die Datei
${WT_HOME}/
codebase/WEB-INF/log4jMethodServer.properties
.
2. Erforderlich. Nun definieren Sie einen INFO-Level-Logger für die Klassen des Java-Packages de.innoface
.
log4j.logger.de.innoface=INFO,methodServerLogFile
log4j.additivity.de.innoface=false
Ergebnis
Die resultierende Datei sollte einen ähnlichen Inhalt haben:
CODE
# log4j configuration for method server processes
# Set root logger to output only ERROR and FATAL events to stdout, methodServerLogFile, and MiscLogEvents appenders
log4j.rootLogger=ERROR, stdout, methodServerLogFile, MiscLogEvents
# Define stdout appender, which sends log events to stdout
log4j.appender.stdout=wt.log4j.jmx.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p : %c %X{user} - %m%n
# Define methodServerLogFile appender, which sends log events to a file
log4j.appender.methodServerLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.methodServerLogFile.File=${wt.logs.dir}/${wt.manager.serviceName}-${wt.jvm.startTime.formatted.short}-${wt.jvm.id}-log4j.log
log4j.appender.methodServerLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.methodServerLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.methodServerLogFile.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c %X{user} - %m%n
# Innoface logger
log4j.logger.de.innoface=INFO,methodServerLogFile
log4j.additivity.de.innoface=false
# Define MiscLogEvents appender, which sends log events (of sufficiently high severity) to the database
log4j.appender.MiscLogEvents=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.MiscLogEvents.BatchSize=200
log4j.appender.MiscLogEvents.IncludeMDC=true
log4j.appender.MiscLogEvents.threshold=WARN
# Throttle logging of exception traces to the database (adjust threshold as needed)
log4j.appender.MiscLogEvents.ThrowableElideThreshold=15
# Log wt.log4j.jmx.AsyncJDBCAppender warnings and errors, but not to MiscLogEvents, lest we get into an infinitite loop
log4j.logger.wt.log4j.jmx.AsyncJDBCAppender=WARN, stdout, methodServerLogFile
log4j.additivity.wt.log4j.jmx.AsyncJDBCAppender=false
# Log normal method context log messages to stdout and methodServerLogFile, but not to MiscLogEvents as MethodContexts appender captures these events in more detail
log4j.logger.wt.method.MethodContextMonitor.contexts=, stdout, methodServerLogFile
log4j.additivity.wt.method.MethodContextMonitor.contexts=false
# Log normal servlet request log messages to stdout and methodServerLogFile, but not to MiscLogEvents as ServletRequests appender captures these events in more detail
log4j.logger.wt.servlet.ServletRequestMonitor.request=, stdout, methodServerLogFile
log4j.additivity.wt.servlet.ServletRequestMonitor.request=false
# Adjust the following loggers' levels from ERROR
log4j.logger.com.infoengine.jndi.DirContextMonitor.stats.summary=INFO
log4j.logger.com.infoengine.util.IeContextMonitor.stats.summary=INFO
log4j.logger.com.ptc.core.logic.LogicRepository=INFO
log4j.logger.com.ptc.core.logic.repository.server.impl.ChangeLocator=INFO
log4j.logger.com.ptc.netmarkets.util.misc.StandardNmActionService.xmlInit=INFO
log4j.logger.com.ptc.tomcat.embedded.Bootstrap=INFO
log4j.logger.com.ptc.windchill.upgrade=WARN
log4j.logger.com.ptc.windchill.uwgm.soap.impl.uwgm.UwgmTransaction=INFO
log4j.logger.org.springframework.web.servlet.DispatcherServlet=INFO
log4j.logger.wt.audit.eventinfo.truncate=WARN
log4j.logger.wt.epm.upgrade=INFO
log4j.logger.wt.epm.ecad=INFO
log4j.logger.wt.epm.util.UpdateArbortextExtendedDocTypeUtility=INFO
log4j.logger.wt.fc.jmx.TopSQLMonitor.sqlStats.current=DEBUG
log4j.logger.wt.fc.jmx.TopSQLMonitor.sqlStats.matching.sql=DEBUG
log4j.logger.wt.index.BulkIndexHelper=INFO
log4j.logger.wt.jmx.core.mbeans.Dumper.heapdumps=INFO
log4j.logger.wt.jmx.core.mbeans.Dumper.script.stdout=INFO
log4j.logger.wt.jmx.core.mbeans.PeriodicStackLoggingDelegate=INFO
log4j.logger.wt.jmx.core.mbeans.ProcessCpuTimeMonitor=WARN
log4j.logger.wt.jmx.core.mbeans.ScriptActionDelegateFactory.script.stdout=INFO
log4j.logger.wt.load.ecad=INFO
log4j.logger.wt.log4j.jmx.AsyncJDBCAppender.connection=OFF
log4j.logger.wt.manager.jmx.ServerManagerMonitor=INFO
log4j.logger.wt.method.client=WARN
log4j.logger.wt.method.server=WARN
log4j.logger.wt.method.server.shutdown=INFO
log4j.logger.wt.method.server.startup=INFO
log4j.logger.wt.method.MemoryUsageRedirectStrategy=INFO
log4j.logger.wt.method.MethodContext.contextMBean.start=OFF
log4j.logger.wt.pds.queryCancel=WARN
log4j.logger.wt.phonehome.queue.AbstractPhoneHomeQueueEntry=INFO
log4j.logger.wt.pds.passwordexpiry.PasswordExpiryWarningService=INFO
log4j.logger.wt.pom.properties=INFO
log4j.logger.wt.servlet.ServletRequestMonitor.requestMBean.start=OFF
log4j.logger.wt.session.SessionUsers.ICache=WARN
log4j.logger.wt.session.SessionUsers.keyEvents=WARN
log4j.logger.wt.system.err=INFO
log4j.logger.wt.system.out=INFO
log4j.logger.wt.util.WrappedSocket=WARN
log4j.logger.wt.wvs.workeragent.StandardCadAgentService=INFO
log4j.logger.wt.licenseusage.licensing=INFO
# Do not send periodic stack logger output to stdout
log4j.logger.wt.jmx.core.mbeans.PeriodicStackLoggingDelegate=, methodServerLogFile, MiscLogEvents
log4j.additivity.wt.jmx.core.mbeans.PeriodicStackLoggingDelegate=false
# Limit com.infoengine.log* loggers to outputting to methodServerLogFile and MiscLogEvents
log4j.logger.com.infoengine.log=, methodServerLogFile, MiscLogEvents
log4j.additivity.com.infoengine.log=false
# Limit bulk indexing log messages to a separate file and MiscLogEvents
log4j.appender.BITLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.BITLogFile.File=${wt.logs.dir}/BulkIndexTool-${wt.jvm.startTime.formatted.short}-${wt.jvm.id}-log4j.log
log4j.appender.BITLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.BITLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.BITLogFile.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c - %m%n
log4j.logger.wt.index.BulkIndexHelper=, BITLogFile, MiscLogEvents
log4j.additivity.wt.index.BulkIndexHelper=false
# Define persistenceLogFile appender
log4j.appender.persistenceLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.persistenceLogFile.File=${wt.logs.dir}/Persistence-${wt.jvm.startTime.formatted.short}-${wt.jvm.id}-log4j.log
log4j.appender.persistenceLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.persistenceLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.persistenceLogFile.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c - %m%n
# Uncomment next lines to log SQL to a separate file and MiscLogEvents
#log4j.logger.wt.pom.sql=, persistenceLogFile, MiscLogEvents
#log4j.additivity.wt.pom.sql=false
# Define epmPerformanceLogFile appender, which sends CAD-related operations perfermance log events to a file
log4j.appender.epmPerformanceLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.epmPerformanceLogFile.file=${wt.logs.dir}/EPMPerf-${wt.jvm.id}.log
log4j.appender.epmPerformanceLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.epmPerformanceLogFile.layout=wt.log4j.jmx.TSVLayout
log4j.appender.epmPerformanceLogFile.layout.HeaderFile=${wt.logs.dir}/EPMPerf-${wt.jvm.id}.log
log4j.appender.epmPerformanceLogFile.layout.DateFormat=yyyy-MM-dd HH:mm:ss z
# Log the CAD operation performance information; logging is enabled only when level is set to TRACE.
#log4j.logger.wt.epm.util.log.perf=TRACE,epmPerformanceLogFile
#log4j.additivity.wt.epm.util.log.perf=false
# Log immutable method server process information to the database
log4j.appender.MethodServerInfo=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.MethodServerInfo.RendererMap=JVMArguments\=wt.log4j.jmx.RenderStringArrayAsMultiLineString
# Send wt.methodServer.info log events to stdout, methodServerLogFile, and MethodServerInfo appenders, but not to MiscLogEvents appender
log4j.logger.wt.methodServer.info=, stdout, methodServerLogFile, MethodServerInfo
log4j.additivity.wt.methodServer.info=false
# Log periodic method server health summary information to the database
log4j.appender.MSHealthStats=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.MSHealthStats.ItemsToCollectionExpand=GarbageCollectors,GCTime,GCCount
# Send wt.summary.general log events to stdout, methodServerLogFile, and MSHealthStats appenders, but not to MiscLogEvents appender
log4j.logger.wt.summary.general=, stdout, methodServerLogFile, MSHealthStats
log4j.additivity.wt.summary.general=false
# Log JMX Notifications to appropriate database table
log4j.appender.JmxNotifications=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.JmxNotifications.threshold=INFO
# Send wt.jmx.notif log events to stdout, methodServerLogFile, and JmxNotifications appenders, but not to MiscLogEvents appender
log4j.logger.wt.jmx.notif=, stdout, methodServerLogFile, JmxNotifications
log4j.additivity.wt.jmx.notif=false
# Log periodic servlet request summary statistics to the database
log4j.appender.ServletRequestStats=wt.log4j.jmx.AsyncJDBCAppender
# Send wt.servlet.ServletRequestMonitor.stats.summary log events to stdout, methodServerLogFile, and ServletRequestStats appenders, but not to MiscLogEvents appender
log4j.logger.wt.servlet.ServletRequestMonitor.stats.summary=INFO, stdout, methodServerLogFile, ServletRequestStats
log4j.additivity.wt.servlet.ServletRequestMonitor.stats.summary=false
# Log periodic servlet session summary statistics to the database
log4j.appender.ServletSessionStats=wt.log4j.jmx.AsyncJDBCAppender
# Send wt.servlet.SessionMonitor.stats.summary log events to stdout, methodServerLogFile, and ServletSessionStats appenders, but not to MiscLogEvents appender
log4j.logger.wt.servlet.SessionMonitor.stats.summary=INFO, stdout, methodServerLogFile, ServletSessionStats
log4j.additivity.wt.servlet.SessionMonitor.stats.summary=false
# Log periodic method context summary statistics to the database
log4j.appender.MethodContextStats=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.MethodContextStats.ColumnMap=ContextJDBCConnWaitSecondsAverage\=ContextJDBCConnWaitSecondsAvg,PercentageOfContextTimeInJDBCCalls\=PercOfContextTimeInJDBCCalls,PercentageOfContextTimeInJDBCConnWait\=PercOfContextTimeInJDBCConWait,PercentageOfContextTimeInJNDICalls\=PercOfContextTimeInJNDICalls,PercentageOfContextTimeInCORBACalls\=PercOfContextTimeInCORBACalls,AverageRemoteCacheCallsPerContext\=AverageRCacheCallsPerContext,PercentageOfContextTimeInRemoteCacheCalls\=PercOfContextTimeInRCacheCalls
# Send wt.method.MethodContextMonitor.stats.summary log events to stdout, methodServerLogFile, and MethodContextStats appenders, but not to MiscLogEvents appender
log4j.logger.wt.method.MethodContextMonitor.stats.summary=INFO, stdout, methodServerLogFile, MethodContextStats
log4j.additivity.wt.method.MethodContextMonitor.stats.summary=false
# Log raw servlet request statistics to appropriate database table (and nowhere else)
log4j.appender.RawServletRequestStats=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.RawServletRequestStats.BatchSize=500
log4j.appender.RawServletRequestStats.IncludeMDC=true
log4j.logger.wt.servlet.ServletRequestMonitor.rawStatistics=INFO, RawServletRequestStats
log4j.additivity.wt.servlet.ServletRequestMonitor.rawStatistics=false
# Log raw method context statistics to appropriate database table (and nowhere else)
log4j.appender.RawMethodContextStats=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.RawMethodContextStats.BatchSize=500
log4j.appender.RawMethodContextStats.IncludeMDC=true
log4j.logger.wt.method.MethodContextMonitor.rawStatistics=INFO, RawMethodContextStats
log4j.additivity.wt.method.MethodContextMonitor.rawStatistics=false
# Log sampled servlet requests to appropriate database table (and nowhere else)
log4j.appender.SampledServletRequests=wt.servlet.JDBCRequestAppender
log4j.appender.SampledServletRequests.BatchSize=200
log4j.appender.SampledServletRequests.IncludeMDC=true
log4j.appender.SampledServletRequests.DynamicMBeanAttrsToInclude=ThreadName,StackTrace,ContentBytesRead,ContentCharsRead,UncompressedBytesOutput,ContentBytesOutput,ContentCharsOutput,BytesAllocated,ThrottledSeconds,BeingThrottled,BlockedCount,BlockedSeconds,WaitedCount,WaitedSeconds,ElapsedCpuSeconds,ElapsedSeconds,StartTime,Id,ThreadId,RemoteUser,RemoteAddr,ContextPath,RequestURI,QueryString,RequestParameters,Method
log4j.appender.SampledServletRequests.RendererMap=StackTrace\=wt.log4j.jmx.SimplifiedStackTraceRenderer
log4j.logger.wt.servlet.ServletRequestMonitor.activeRequest=WARN, SampledServletRequests
log4j.additivity.wt.servlet.ServletRequestMonitor.activeRequest=false
# Log sampled method contexts to appropriate database table (and nowhere else)
log4j.appender.SampledMethodContexts=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.SampledMethodContexts.BatchSize=200
log4j.appender.SampledMethodContexts.IncludeMDC=true
log4j.appender.SampledMethodContexts.DynamicMBeanAttrsToInclude=ThreadName,AccessLogDetail,StackTrace,CurrentJDBCDatabaseSessionId,BlockingCallInfo,JNDICalls,ElapsedJNDISeconds,CORBACalls,ElapsedCORBASeconds,JDBCQueryCalls,ElapsedJDBCSeconds,JDBCConnectionWaitTimeSeconds,RemoteCacheCallReport,RemoteCacheCalls,ElapsedRemoteCacheSeconds,BlockedCount,BlockedSeconds,WaitedCount,WaitedSeconds,ElapsedTotalCpuSeconds,ElapsedTotalSeconds,BytesAllocated,StartTime,Id,ParentId,ThreadId,RMICall,RemoteAddr,ServletRequestId,UserName,TargetClass,TargetMethod,Redirects
log4j.appender.SampledMethodContexts.ColumnMap=BlockingCallInfo.type\=BlockingCallType,BlockingCallInfo.elapsedSeconds\=BlockingCallElapsedSeconds,BlockingCallInfo.description\=BlockingCallDescription,BlockingCallInfo.id\=BlockingCallId
log4j.appender.SampledMethodContexts.RendererMap=StackTrace\=wt.log4j.jmx.SimplifiedStackTraceRenderer,RemoteCacheCallReport\=wt.log4j.jmx.RenderStringArrayAsMultiLineString
log4j.logger.wt.method.MethodContextMonitor.activeContext=WARN, SampledMethodContexts
log4j.additivity.wt.method.MethodContextMonitor.activeContext=false
# Log servlet request completions warnings and errors to the database (and nowhere else)
log4j.appender.ServletRequests=wt.servlet.JDBCRequestAppender
log4j.appender.ServletRequests.BatchSize=200
log4j.appender.ServletRequests.DynamicMBeanAttrsToInclude=StartTime,Id,ThreadId,RemoteUser,RemoteAddr,ContextPath,RequestURI,QueryString,RequestParameters,RequestHeaders,RequestedSessionId,SessionId,Method,Protocol,StatusCode,ContentBytesRead,ContentCharsRead,UncompressedBytesOutput,ContentBytesOutput,ContentCharsOutput,BytesAllocated,ThrottledSeconds,BlockedCount,BlockedSeconds,WaitedCount,WaitedSeconds,ElapsedCpuSeconds,ElapsedSeconds
log4j.appender.ServletRequests.RendererMap=RequestHeaders\=wt.log4j.jmx.RenderStringArrayAsMultiLineString
log4j.logger.wt.servlet.ServletRequestMonitor.requestMBean.finish=WARN, ServletRequests
log4j.additivity.wt.servlet.ServletRequestMonitor.requestMBean.finish=false
# Log method context completions warnings and errors to the database (and nowhere else)
log4j.appender.MethodContexts=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.MethodContexts.BatchSize=200
log4j.appender.MethodContexts.DynamicMBeanAttrsToInclude=StartTime,Id,ParentId,ThreadId,RMICall,RemoteAddr,ServletRequestId,UserName,TargetClass,TargetMethod,AccessLogDetail,Redirects,Redirected,BytesAllocated,JNDICalls,ElapsedJNDISeconds,CORBACalls,ElapsedCORBASeconds,JDBCQueryCalls,ElapsedJDBCSeconds,JDBCConnectionWaitTimeSeconds,RemoteCacheCallReport,RemoteCacheCalls,ElapsedRemoteCacheSeconds,BlockedCount,BlockedSeconds,WaitedCount,WaitedSeconds,ElapsedTotalCpuSeconds,ElapsedTotalSeconds
log4j.appender.MethodContexts.RendererMap=RemoteCacheCallReport\=wt.log4j.jmx.RenderStringArrayAsMultiLineString
log4j.logger.wt.method.MethodContext.contextMBean.finish=WARN, MethodContexts
log4j.additivity.wt.method.MethodContext.contextMBean.finish=false
# Log log4javascript messages to database
log4j.appender.Log4JavascriptEvents=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.Log4JavascriptEvents.BatchSize=200
log4j.appender.Log4JavascriptEvents.IncludeMDC=true
# Only record ERROR and FATAL messages to the database by default, edit next line to change this as desired
log4j.appender.Log4JavascriptEvents.threshold=ERROR
log4j.logger.wt.log4javascript=OFF, stdout, methodServerLogFile, Log4JavascriptEvents
log4j.additivity.wt.log4javascript=false
# Log PTC.performance log4javascript messages to a separate file
log4j.appender.ClientPerfLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.ClientPerfLogFile.File=${wt.logs.dir}/ClientPerf-${wt.jvm.startTime.formatted.short}-${wt.jvm.id}-log4j.log
log4j.appender.ClientPerfLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ClientPerfLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ClientPerfLogFile.layout.ConversionPattern=%-5p : %X{user} - %m%n
log4j.logger.wt.log4javascript.PTC.performance=ALL, stdout, ClientPerfLogFile, Log4JavascriptEvents
log4j.additivity.wt.log4javascript.PTC.performance=false
# Log info-level periodic interval top SQL stats to database
log4j.appender.TopSQLStats=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.TopSQLStats.BatchSize=200
log4j.appender.TopSQLStats.RendererMap=StackTrace\=wt.log4j.jmx.SimplifiedStackTraceRenderer
log4j.appender.TopSQLStats.threshold=INFO
# Log forced periodic interval top SQL stats to stdout, methodServerLogFile, and TopSQLStats appenders, but not to MiscLogEvents appender
log4j.logger.wt.fc.jmx.TopSQLMonitor.sqlStats.interval.forced=DEBUG, stdout, methodServerLogFile, TopSQLStats
log4j.additivity.wt.fc.jmx.TopSQLMonitor.sqlStats.interval.forced=false
# Log quiet (background) top SQL stats to TopSQLStats and no other appenders
log4j.logger.wt.fc.jmx.TopSQLMonitor.sqlStats.interval.quiet=INFO, TopSQLStats
log4j.additivity.wt.fc.jmx.TopSQLMonitor.sqlStats.interval.quiet=false
# Log user agent information to the database (only)
log4j.appender.UserAgentInfo=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.UserAgentInfo.BatchSize=500
log4j.logger.wt.servlet.UserAgentTracker=INFO, UserAgentInfo
log4j.additivity.wt.servlet.UserAgentTracker=false
# Log remote cache calls to database
# Note: nothing will be logged for this logger unless its verbosity level is INFO or higher; level is set to WARN by default
log4j.appender.RemoteCacheServerCalls=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.RemoteCacheServerCalls.BatchSize=500
log4j.appender.RemoteCacheServerCalls.IncludeMDC=true
log4j.appender.RemoteCacheServerCalls.RendererMap=StackTrace\=wt.log4j.jmx.RenderStringArrayAsMultiLineString
# Send wt.cache.client.timing log events to stdout, methodServerLogFile, and RemoteCacheServerCalls appenders, but not to MiscLogEvents appender
log4j.logger.wt.cache.client.timing=WARN, stdout, methodServerLogFile, RemoteCacheServerCalls
log4j.additivity.wt.cache.client.timing=false
# Configure RmiPerfData appender; sends timing data on incoming RMI calls to RmiPerfData table
log4j.appender.RmiPerfData=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.RmiPerfData.BatchSize=500
# Disable RmiPerfData appender by default; comment out this line or change threshold to INFO to enable
log4j.appender.RmiPerfData.threshold=WARN
# Configure IncomingRmiStats appender
# Collects RMI statistics for viewing with wt.rmi.jmx.IncomingRmiStatsMonitor MBean; must instantiate this MBean (via MBean Loader) to access results
log4j.appender.IncomingRmiStats=wt.rmi.jmx.IncomingRmiStatsAppender
# Disable IncomingRmiStats appender by default; set threshold to INFO to enable
log4j.appender.IncomingRmiStats.threshold=WARN
# Send wt.rmi.perf log events only to RmiPerfData and IncomingRmiStats appenders
# Note that by default all wt.rmi.perf logging is disabled; must use at least INFO verbosity to obtain output; also see comments on the appenders
log4j.logger.wt.rmi.perf=OFF, RmiPerfData, IncomingRmiStats
log4j.additivity.wt.rmi.perf=false
# Log structured RMI histogram data to appropriate database table (only) -- uncomment and configure an IncomingRmiStatsMonitor MBean to activate
# Note: nothing will be logged for this logger unless its verbosity level is INFO or higher
#log4j.appender.RmiHistograms=wt.log4j.jmx.AsyncJDBCAppender
#log4j.appender.RmiHistograms.BatchSize=500
#log4j.logger.wt.rmi.jmx.IncomingRmiStatsMonitor.structuredData=INFO, RmiHistograms
#log4j.additivity.wt.rmi.jmx.IncomingRmiStatsMonitor.structuredData=false
# Log structured request histogram data to appropriate database table (only) -- uncomment and configure a RequestHistogrammer MBean to activate
# Note: nothing will be logged for this logger unless its verbosity level is INFO or higher
#log4j.appender.RequestHistograms=wt.log4j.jmx.AsyncJDBCAppender
#log4j.appender.RequestHistograms.BatchSize=500
#log4j.logger.wt.servlet.RequestHistogrammer.structuredData=INFO, RequestHistograms
#log4j.additivity.wt.servlet.RequestHistogrammer.structuredData=false
# Define socket appender
# (uncomment, adjust values, and add to appropriate logger configurations to use)
#log4j.appender.socket=org.apache.log4j.net.SocketAppender
#log4j.appender.socket.port=4560
#log4j.appender.socket.remoteHost=localhost
#log4j.appender.socket.application=${wt.manager.serviceName}-${wt.jvm.id}
# Limit Classification Structure Indexing log messages to a separate file
log4j.appender.CLFStructureLogFile=wt.log4j.jmx.DailyRollingFileAppender
log4j.appender.CLFStructureLogFile.File=${wt.logs.dir}/UpdateClassificationStructure-${wt.jvm.startTime.formatted.short}-${wt.jvm.id}-log4j.log
log4j.appender.CLFStructureLogFile.DatePattern='.'yyyy-MM-dd
log4j.appender.CLFStructureLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.CLFStructureLogFile.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c - %m%n
log4j.logger.com.ptc.windchill.csm.struct.UpdateClassificationStructure=, CLFStructureLogFile, MiscLogEvents
log4j.additivity.com.ptc.windchill.csm.struct.UpdateClassificationStructure=false
# Log cache statistics to CacheStatistics table (and nowhere else)
log4j.appender.CacheStatistics=wt.log4j.jmx.AsyncJDBCAppender
log4j.appender.CacheStatistics.BatchSize=500
log4j.appender.CacheStatistics.DynamicMBeanAttrsToInclude=Uptime,RestartNumber,CacheHits,CacheOverflows,CacheMisses,CacheEntryCount,Name,CacheSize
log4j.logger.wt.cache.ICacheManagerMBean.mbean=INFO, CacheStatistics
log4j.additivity.wt.cache.ICacheManagerMBean.mbean=false
# Reporting for the UpdateSecurityLabels tool
log4j.appender.UpdateSecurityLabelsReport=wt.access.UpdateSLsReportAppender
log4j.appender.UpdateSecurityLabelsReport.File=${wt.logs.dir}/CLT_Report-%time-%jid-%tid.tsv
log4j.additivity.wt.access.UpdateSecurityLabelsReport=false
log4j.logger.wt.access.UpdateSecurityLabelsReport=INFO,UpdateSecurityLabelsReport