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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 |
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. |