Configuring Content Platform Engine API client logging

IBM FileNet Collaboration Services bundles and performs most content operations through the Content Cortex Content Platform Engine Java API. The API layer has its own logging structure, using another standard library (Apache Log4J). Therefore, the server logs may show stack traces for Content Platform Engine-related errors that occur under normal operation, no matter what the application log settings are. You might have to configure Content Platform Engine API client logging when you need to troubleshoot Content Platform Engine-related performance problems.

About this task

To configure Content Platform Engine API client logging for IBM FileNet Collaboration Services:

Procedure

  1. Create an appropriate log4j.properties file.
  2. Prepare to build, or rebuild, the fncs.ear file.
    Before running the configuration manager tool to generate the .ear file, use WinZip, Jar, or a similar tool to insert your log4j.properties file into the following jar file:
    WAS_Install_Location/profiles/profile_name
      /installedApps/NodeName/fncs.ear/
      fncs-webapp.war/WEB-INF/lib/bootstrapConfig.jar
  3. Restart the enterprise application for the deployed IBM FileNet Collaboration Services in the WebSphere® administrative console
  4. The Content Platform Engine client API logs can be found in the location you configured in log4j.properties.

Example

Sample Log4J configuration:

#############################################################
# Root logger
#############################################################
log4j.rootLogger=off, FileNetNullAppender

#############################################################
# Appenders
#############################################################
#=== FileNetNullAppender
log4j.appender.FileNetNullAppender=org.apache.log4j.varia.NullAppender

#=== FileNetConsoleAppender
log4j.appender.FileNetConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.FileNetConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetConsoleAppender.layout.ConversionPattern=
%d %5p [%t] - %m\r\n

#=== FileNetErrorAppender
log4j.appender.FileNetErrorAppender=org.apache.log4j.FileAppender
log4j.appender.FileNetErrorAppender.File=logs/server1/fncs_p8_api_error.log
log4j.appender.FileNetErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetErrorAppender.layout.ConversionPattern=
%d %5p [%t] - %m\r\n

#=== FileNetTraceAppender
log4j.appender.FileNetTraceAppender=org.apache.log4j.FileAppender
log4j.appender.FileNetTraceAppender.File=logs/server1/fncs_p8_api_trace.log
# This is the layout that the TraceLoggingConfiguration 
framework on the server uses.
# To use this layout , jace.jar must be present in the classpath.
#log4j.appender.FileNetTraceAppender.layout=
com.filenet.apiimpl.util.TraceLayout
# Comment out the following lines if using the FileNet TraceLayout
log4j.appender.FileNetTraceAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceAppender.layout.ConversionPattern=
%d %5p [%t] - %m\r\n

#=== FileNetErrorRollingAppender
log4j.appender.FileNetErrorRollingAppender=
org.apache.log4j.RollingFileAppender
log4j.appender.FileNetErrorRollingAppender.File=
logs/server1/fncs_p8_api_error.log
log4j.appender.FileNetErrorRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetErrorRollingAppender.MaxBackupIndex=1
log4j.appender.FileNetErrorRollingAppender.layout=
org.apache.log4j.PatternLayout
log4j.appender.FileNetErrorRollingAppender.layout.ConversionPattern=
%d %5p [%t] - %m\r\n

#=== FileNetTraceRollingAppender
log4j.appender.FileNetTraceRollingAppender=
org.apache.log4j.RollingFileAppender
log4j.appender.FileNetTraceRollingAppender.File=
logs/server1/fncs_p8_api_trace.log
log4j.appender.FileNetTraceRollingAppender.MaxFileSize=100MB
log4j.appender.FileNetTraceRollingAppender.MaxBackupIndex=1
# This is the layout that the TraceLoggingConfiguration 
framework on the server uses.
# To use this layout, jace.jar must be present in the classpath.
#log4j.appender.FileNetTraceRollingAppender.layout=
com.filenet.apiimpl.util.TraceLayout
# Comment out the following lines if using the FileNet TraceLayout
log4j.appender.FileNetTraceRollingAppender.layout=
org.apache.log4j.PatternLayout
log4j.appender.FileNetTraceRollingAppender.layout.ConversionPattern=
%d %5p [%t] - %m\r\n


#############################################################
# Error Loggers:
#
# Set log level to either one of off/fatal/error/warn/info.
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherents its value from its parent.
# By default, error logging is set to level ERROR.
#############################################################
# Don't comment out the following line since it has appenders.
log4j.logger.filenet_error = error, FileNetConsoleAppender, 
FileNetErrorRollingAppender, FileNetTraceRollingAppender

#=== SubSystem: api
# Uncomment to set error logging level to WARN.
#log4j.logger.filenet_error.api = warn



############################################################
# Trace loggers:
#
# Setting log level to "off" will turn off trace logging.
# Setting log level to "debug" will turn on trace logging.
#
# Child logger's value overwrites parent logger's value.
# If a logger is not specified, it inherents its value from its parent.
# By default, trace logging is off.
#
# The general message trace logging has a hierarchy 
# of three detail levels represented with
# hierarchical logger names:
#    ...detail.moderate.summary  -- Enables a summary level of tracing
#    ...detail.moderate          -- Enables a moderate level of tracing
#    ...detail                   -- Enables the most detailed level of tracing
#
# Uncomment corresponding lines to turn tracing on.  To enable trace logging
# for all subsystems and all flags, set the level of the filenet_tracing
# logger to debug.
#
# Here are the trace flags used for each sub system.  
# For message tracing, enable the line
# corresponding to the desired detail level.
# log4j.logger.filenet_tracing.<SubSystem>.timer              = debug 
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate.summary = debug 
# log4j.logger.filenet_tracing.<SubSystem>.detail.moderate    = debug
# log4j.logger.filenet_tracing.<SubSystem>.detail             = debug
# 
# For example: 
# log4j.logger.filenet_tracing.api.detail.moderate = debug 
#############################################################
# Don't comment out the following line since it includes an appender. 
log4j.logger.filenet_tracing = off, FileNetTraceRollingAppender  

#=== SubSystem: api 
# Uncomment one or more lines to enable tracing. 
log4j.logger.filenet_tracing.api                          = debug 
log4j.logger.filenet_tracing.api.timer                    = debug 
# Remove the comment corresponding to the desired detail level 
log4j.logger.filenet_tracing.api.detail.moderate.summary  = debug 
#log4j.logger.filenet_tracing.api.detail.moderate          = debug 
#log4j.logger.filenet_tracing.api.detail                   = debug