com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links' is unknown.

Managing Logs

Logging is one of the most important aspects of a production-grade server. A properly configured logging system is vital for identifying errors, security threats and usage patterns. All WSO2 products are shipped with the log4j logging capabilities, which generates administrative activities and server side logs. The log4j.properties file, which governs how logging is performed by the server can be found in the <PRODUCT_HOME>/repository/conf directory.

Java logging and Log4j integration

In addition to the logs from libraries that use Log4j, all logs from libraries (such as, Tomcat, Hazelcast and more) that use Java logging framework are also visible in the same log files. That is, when Java logging is enabled in Carbon, only the Log4j appenders will write to the log files. If the Java Logging Handlers have logs, these logs will be delegated to the log events of the corresponding Log4j appenders. A Pub/Sub registry pattern implementation has been used in the latter mentioned scenario to plug the handlers and appenders. The following default log4j appenders in the log4j.properties file are used for this implementation:

  • org.wso2.carbon.logging.appenders.CarbonConsoleAppender
  • org.wso2.carbon.logging.appenders.CarbonDailyRollingFileAppender 

Configuring products for log monitoring

Given below are ways to configure log4j files: 

  • Manually editing the log4j.properties file.
  • Configure logging through the management console. This option is only available if the Logging Management feature is installed in your product.

Using the management console to configure logging is recommended because all changes made to log4j through the management console persists in the WSO2 Registry. Therefore, those changes will be available after the server restarts and will get priority over what is defined in the actual log4j.properties file. Also, note that the logging configuration you define using the management console will apply at run time. However, if you modify the log4j.properties file and restart the server, the earlier log4j configuration that persisted in the registry will be overwritten. There is also an option in the management console to restore the original log4j configuration from the log4j.properties file. 

Managing log growth 

Log growth can be managed by the following configurations in the <PRODUCT_HOME>/repository/conf/log4j.properties file.

  • Configurable log rotation: By default, log rotation is on a daily basis.
  • Log rotation based on time as opposed to size: This helps to inspect the events that occurred during a specific time.
  • Log files are archived to maximise the use of space.

The log4j-based logging mechanism uses appenders to append all the log messages into a file. That is, at the end of the log rotation period, a new file will be created with the appended logs and archived. The name of the archived log file will always contain the date on which the file is archived.  

Monitoring logs 

In each Carbon product, users can configure and adjust the logging levels for each type of activity/ transaction. There are several ways to view the system log and application logs of a running Carbon instance.  

  • Through the log files that are stored in the <PRODUCT_HOME>/repository/logs folder. This folder contains current logs in a log file with a date stamp. Older logs are archived in the wso2carbon.log file.
  • Through the command prompt/shell terminal that opens when you run the "wso2server.bat"/"wso2server.sh" files to start the Carbon server.   
  • Through the advanced monitoring capabilities in WSO2 BAM. 
  • Through the management console of your product. This option is only available if the Logging Management feature is installed in your product.

Limiting the size of the wso2carbon.log file

You can limit the size of the <PRODUCT_HOME>/repository/logs/wso2carbon.log file to archive and get backups of the logs stored in it periodically as preferred. Follow the steps below to add the configurations to limit the size of the <PRODUCT_HOME>/repository/logs/wso2carbon.log file.

  1. Change the log4j.appender.CARBON_LOGFILE=org.wso2.carbon.logging.appenders.CarbonDailyRollingFileAppender appender in the <PRODUCT_HOME>/repository/conf/log4j.properties file as follows.
    log4j.appender.CARBON_LOGFILE=org.apache.log4j.RollingFileAppender
  2. Add following two properties under the RollingFileAppender.

    log4j.appender.CARBON_LOGFILE.MaxFileSize=10MB 
    log4j.appender.CARBON_LOGFILE.MaxBackupIndex=20

    If the size of the log file is exceeding the value defined in the MaxFileSize property, then the content is copied to a backup file and the logs are continued to be added to a new empty log file. The MaxBackupIndex property makes the Log4j keep a given maximum number of backup files for the logs.

Logging Management Feature

The possibility to use the management console of your product for log configuration and log monitoring is provided by the following feature in the WSO2 feature repository:

Name : WSO2 Carbon - Logging Management Feature 
Identifier : org.wso2.carbon.logging.mgt.feature.group

If the above feature is not bundled in your product by default, you can install it using the instructions given in the Feature Management section.

See Monitoring Logs using BAM for more advanced log monitoring options.

com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.