Logging Configuration In Mule
 There’s no need to state the importance of debuggers for developers, and Mule developers are no exception. The goal of this blog post is to provide you with a few handy tips for debugging your custom Java code in Mule Studio.
 Through the logging configuration it’s possible to configure what gets logged, where it gets logged, and how it gets logged.  Mule internally logs multiple messages along with some specific elements in the application’s flows.  The logger component can also be included to output any desired messages.  By creating a configuration file, it’s possible to define what kinds of messages to log, in what way (asynchronously or synchronously), and where they get logged (To console, To disk or to a database). Logging Configuration In Mule
 For logging Mule uses slf4j.  Slf4j is a logging facade, that discovers and uses a logging strategy from the classpath, such as log4j2 or the JDK Logger.  By Default Mule includes log4j2.  The configuration used for it is log4j2.xml.  The Mule server has a log4j2.xml file in the conf directory.  This file can be customized when running the server in standalone mode. Logging Configuration In Mule
 To view Anypoint Studio logs:  Error Log :  Logs can be viewed in Studio by clicking: Anypoint Studio > About Anypoint Studio > Installation Details > Configuration tab > View Error Log  Workspace Logs :  The output from View Error Log is in the workspace’s ’.metadata/.log’ file  Project Log:  The logs for the mule application are present in the workspace’s ‘.mule/logs/<project>.log’ file. Logging Configuration In Mule
 Types of logging :  Synchronous :  The execution of the thread that is processing the message is interrupted to wait for the log message to be fully handled before it can continue.  Asynchronous:  The logging operation occurs in a separate thread, so the actual processing of your message won’t be delayed to wait for the logging to complete.  Note :  By Default Mule uses the Asynchronous logging in the applications. Logging Configuration In Mule
Synchronous Logging Asynchronous Logging • Useful when Application logs are required to be used as audit trails. • The performance is low, as the applications waits for the logger component to complete the logging. • brings a substantial improvement in throughput and latency of message processing. • after a system crash, a scenario is possible where, some actions were performed but not logged, since log writing is performed on a separate thread that runs independently of other actions. Logging Configuration In Mule
 By default, logging in Mule is done asynchronously and at a level greater than or equal to INFO.  Hence it ignores the messages at the DEBUG or TRACE level. Logging Configuration In Mule
 Defining the Logging type, logging level or custom categories can be done by modifying the log4j2.xml file.  This file is located at different locations depending on the where the application is running.  In Standalone Mule Runtime :  $MULE_HOME/conf/log4j2.xml  In Anypoint Studio:  src/main/resources Logging Configuration In Mule
 If the file is not edited then the default configuration is assumed for the application.  The configuration can be overridden at the domain or the application level.  Create a custom file at a custom folder location and point to it in the application’s deployment properties.  To point the application to use this file :  open the application’s mule-deploy.properties file in src/main/app and add a log.configFile property with this location specified in it.  Example : log.configFile=myCustomFolder/myCustomlog4j2.xm l Logging Configuration In Mule
 If the deployment property is not set then mule searches for the config file following child–first pattern as follows :  Look for a file called log4j2-test.xml in the application classpath  Look for a file called log4j2.xml in the application classpath  Look for a file called log4j2-test.xml in the domain classpath  Look for a file called log4j2.xml in the domain classpath  Look for a file called log4j2-test.xml in MULE_HOME/conf  Look for a file called log4j2.xml in MULE_HOME/conf  Apply default configuration. Logging Configuration In Mule

Logging configuration in mule

  • 1.
  • 2.
     There’s noneed to state the importance of debuggers for developers, and Mule developers are no exception. The goal of this blog post is to provide you with a few handy tips for debugging your custom Java code in Mule Studio.
  • 3.
     Through thelogging configuration it’s possible to configure what gets logged, where it gets logged, and how it gets logged.  Mule internally logs multiple messages along with some specific elements in the application’s flows.  The logger component can also be included to output any desired messages.  By creating a configuration file, it’s possible to define what kinds of messages to log, in what way (asynchronously or synchronously), and where they get logged (To console, To disk or to a database). Logging Configuration In Mule
  • 4.
     For loggingMule uses slf4j.  Slf4j is a logging facade, that discovers and uses a logging strategy from the classpath, such as log4j2 or the JDK Logger.  By Default Mule includes log4j2.  The configuration used for it is log4j2.xml.  The Mule server has a log4j2.xml file in the conf directory.  This file can be customized when running the server in standalone mode. Logging Configuration In Mule
  • 5.
     To viewAnypoint Studio logs:  Error Log :  Logs can be viewed in Studio by clicking: Anypoint Studio > About Anypoint Studio > Installation Details > Configuration tab > View Error Log  Workspace Logs :  The output from View Error Log is in the workspace’s ’.metadata/.log’ file  Project Log:  The logs for the mule application are present in the workspace’s ‘.mule/logs/<project>.log’ file. Logging Configuration In Mule
  • 6.
     Types oflogging :  Synchronous :  The execution of the thread that is processing the message is interrupted to wait for the log message to be fully handled before it can continue.  Asynchronous:  The logging operation occurs in a separate thread, so the actual processing of your message won’t be delayed to wait for the logging to complete.  Note :  By Default Mule uses the Asynchronous logging in the applications. Logging Configuration In Mule
  • 7.
    Synchronous Logging AsynchronousLogging • Useful when Application logs are required to be used as audit trails. • The performance is low, as the applications waits for the logger component to complete the logging. • brings a substantial improvement in throughput and latency of message processing. • after a system crash, a scenario is possible where, some actions were performed but not logged, since log writing is performed on a separate thread that runs independently of other actions. Logging Configuration In Mule
  • 8.
     By default,logging in Mule is done asynchronously and at a level greater than or equal to INFO.  Hence it ignores the messages at the DEBUG or TRACE level. Logging Configuration In Mule
  • 9.
     Defining theLogging type, logging level or custom categories can be done by modifying the log4j2.xml file.  This file is located at different locations depending on the where the application is running.  In Standalone Mule Runtime :  $MULE_HOME/conf/log4j2.xml  In Anypoint Studio:  src/main/resources Logging Configuration In Mule
  • 10.
     If thefile is not edited then the default configuration is assumed for the application.  The configuration can be overridden at the domain or the application level.  Create a custom file at a custom folder location and point to it in the application’s deployment properties.  To point the application to use this file :  open the application’s mule-deploy.properties file in src/main/app and add a log.configFile property with this location specified in it.  Example : log.configFile=myCustomFolder/myCustomlog4j2.xm l Logging Configuration In Mule
  • 11.
     If thedeployment property is not set then mule searches for the config file following child–first pattern as follows :  Look for a file called log4j2-test.xml in the application classpath  Look for a file called log4j2.xml in the application classpath  Look for a file called log4j2-test.xml in the domain classpath  Look for a file called log4j2.xml in the domain classpath  Look for a file called log4j2-test.xml in MULE_HOME/conf  Look for a file called log4j2.xml in MULE_HOME/conf  Apply default configuration. Logging Configuration In Mule