Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The advantage of having per-API log files is that it is very easy to analyze/monitor what went wrong in a particular REST API defined in the ESB by looking at the log files. Enabling this feature will not terminate the wso2-esb.log file being keeping the logs about this service, the complete log will contain every log statement including the service logs that you have configured to be logged into a different log file. In other words, the service log The API log is an additional log file, which will contain a copy of the logs to that a particular serviceREST API.

Below are the configuration details to configure the logs of a REST API called TestAPI using log4j properties.

Open <ESB_HOME>/repository/conf/log4j.properties file using your favorite text editor to configure log4j to log the API specific logs to a file. You can configure the logger for either INFO level logs or DEBUG level logs as follows:

Anchor
infoLevel
infoLevel
INFO level

Add the following

...

section to the end of the file to configure the logger for log messages where the Log Category is INFO.

Code Block
log4j.category.API_LOGGER=INFO, API_APPENDER
log4j.additivity.API_LOGGER=false
log4j.appender.API_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.API_APPENDER.File=${carbon.home}/repository/logs/${instance.log}/wso2-esb-api${instance.log}.log
log4j.appender.API_APPENDER.MaxFileSize=1000KB
log4j.appender.API_APPENDER.MaxBackupIndex=10
log4j.appender.API_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.API_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n</pre>
      
Tip

The in-sequence of the REST API will need to contain a Log mediator with the Log Category defined as INFO to be able to view logs in the log file.

 

Anchor
debugLevel
debugLevel
DEBUG level

Add the

...

following section to the end of the file to configure the logger for log messages where the Log Category is DEBUG.

Code Block
log4j.category.API_LOGGER.TestAPI=DEBUG, TEST_API_APPENDER
log4j.additivity.API_LOGGER.TestAPI=false
log4j.appender.TEST_API_APPENDER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TEST_API_APPENDER.File=${carbon.home}/repository/logs/${instance.log}/TestAPI.log
log4j.appender.TEST_API_APPENDER.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.TEST_API_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST_API_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n
Info

The above configuration creates a log file names TestAPI.log in the folder <ESB_HOME>/repository/logs.

Tip

The in-sequence of the REST API will need to contain a Log mediator

...

with the Log Category defined as DEBUG to be able to view logs in the log file.