Contact Free trial Login

Logging With Mule ESB 3.x

Mule 3.1.2 introduced new logging features:

  1. Log file per-application

  2. Applications can override default logging configuration

  3. Logging configurations can be reloaded on the fly without restarting an app or Mule.

These features are supported in standalone Mule only, no embedded support possible.


  1. Both log4j.xml and formats are supported. See

  2. log4j.xml takes precedence over if both found

  3. Switching log configuration formats on the fly isn’t supported. I.e. dropping a log4j.xml in when the system was configured using won’t trigger the re-configuration. However, individual app re-deployment can change logging format (new config will be monitored once the app is done redeploying).

  4. $MULE_HOME/conf/log4j.xml/properties is a top-level (container) log configuration.

  5. Mule monitors the log config file for changes every 10 secs

  6. For on-the-fly log config changes to happen, the config file must be a physical file on a disk, not a resource in a jar. In case of a jarred configuration file, logging will be configured once on startup without support for dynamic reconfiguration. In practice, this simply means that one has to put log4j config files in the app’s 'classes' directory.

  7. If there’s an error in the logging config file, the logging subsystem will become unavailable and produce no output. Simply correct the error and save changes, Mule will pick them up in 10 seconds and reconfigure logging.

  8. By default, dedicated log file is created for each app. All log files are located in $MULE_HOME/logs

  9. Default filename pattern for a per-app log is ‘mule-app-myapp.log”, where ‘myapp’ is the name of the app.

  10. Default appender is a DailyRollingFileAppender, for past dates other than today a datestamp is added to the filename in the ‘yyyyy-MM-dd’ format

  11. An app may optionally override logging configuration

  12. Same rules about xml- vs properties-based config preference apply

  13. Same rules about on-the-fly changes to logging configuration file apply

  14. When an app overrides logging configuration, it should configure full logging including the root logger, appenders, etc. This also means that full power of log4j can be leveraged.

  15. For convenience $\{mule.home} can be used in log4j config settings for file paths.

  16. It is possible to use the old-style single-file logging (note that dynamic log re-configuration won’t be supported either). Specify -Dmule.simpleLog JVM startup property (actual value of the property doesn’t matter, only its presence)

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.