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 is an additional log file, which will contain a copy of the logs to that particular service.
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.
Add the following block of entries to the end of the file to configure the logger for log messages where the Log Category is INFO.
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>
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.
Add the following block of entries to the end of the file to configure the logger for log messages where the Log Category is DEBUG.
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
The above configuration creates a log file names
TestAPI.log
in the folder<ESB_HOME>/repository/logs
.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.