Tech I Enjoy Logo

Custom Search




  Home >> Miscellaneous

Log4j Example : Using various levels of logging using Apache Log4j

Suppose there is a log file to be analyzed for certain issues while
tracing activity is performed. This activity can be real difficult
if one has to find/look for a pin from a box full of sand, type of
situation. This may happen if number of tracing / logging lines of
statements ranges from few hundred to thousand lines for a real
big application with many classes being executed with an operation.

So what do you think can be possible way to simplify this particular
problem?? In my thinking if there could be some way to filter only
those log statements, those are related to one particular class
or component in hand.

Yes, You are right!!! Apache Log4j has a provision for defining
which class to be considered for logging and leaving rest of the
classes not eligible for logging purpose.

In this example I shall try to demonstrate this objective of 
configuring log4j.properties file in such a way so as to provide
a filter kind of functionality and this should be done without
any code change as far as the Java class files are concerned.
So this is pretty configuration time setting up activity.

In order to show a method execution flow, I have defined three dummy
class files, such as ExampleController, ExampleService, ExampleDAO
with some dummy kind of methods too.

demo.example.ExampleController.java
package demo.example;

import org.apache.log4j.Logger;

public class ExampleController {
  private static Logger logger = Logger.getLogger(ExampleController.class);
  public void delegateCall() {
	logger.info("Entering delegateMethod");
	new ExampleService().doBusiness();  
	logger.info("Leaving delegateMethod");
  }
}
demo.example.ExampleService.java
package demo.example;

import org.apache.log4j.Logger;

public class ExampleService {
  private static Logger logger = Logger.getLogger(ExampleService.class);	
  public void doBusiness() {
    logger.info("Entering doBusiness");
    new ExampleDAO().doStore();  
    logger.info("Leaving doBusiness");

  }
}
demo.example.ExampleDAO.java
package demo.example;

import org.apache.log4j.Logger;

public class ExampleDAO {
   private static Logger logger = Logger.getLogger(ExampleDAO.class);	
   public void doStore() {
    logger.info("Entering doStore");
    logger.debug("TODO database call");  
    logger.info("Leaving doStore");
   }
}
As these files shows that ExampleController.delegateCall method is calling ExampleService.doBusiness and this method is again calling ExampleDAO.doStore, so there is a chain of method execution with some logging statements being coded. Now a very common (I think so) log4j properties file for this example as follows:
log4j.rootLogger=INFO, A
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %C - %m%n
This log4j.properties file prints out all the logging statements that Log4j encounters while these method execution, as shown below:
[main] INFO  demo.example.ExampleController - Entering delegateMethod
[main] INFO  demo.example.ExampleService - Entering doBusiness
[main] INFO  demo.example.ExampleDAO - Entering doStore
[main] INFO  demo.example.ExampleDAO - Leaving doStore
[main] INFO  demo.example.ExampleService - Leaving doBusiness
[main] INFO  demo.example.ExampleController - Leaving delegateMethod
Now I have modified log4j.properties file and added the line marked as bold RED in color
log4j.rootLogger=FATAL
log4j.logger.demo.example=INFO, A
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %C - %m%n
This makes no difference so far as the number of logging statements on console, for this example is concerned : But the real difference appeared when I added the class file name within the second line of log4j properties file as follows:
log4j.rootLogger=FATAL
log4j.logger.demo.example.ExampleController=INFO, A
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %C - %m%n
This makes the log statement being printed on console, restricted only to the demo.example.ExampleController class file, as show below:
[main] INFO  demo.example.ExampleController - Entering delegateMethod
[main] INFO  demo.example.ExampleController - Leaving delegateMethod
By this way one can apply some filter/restrictions (Just of understanding) and log only those statements those are real important to track. If you like to share your comment/suggestions/feedback relating to this Page, you can do so by droping us an email at usingframeworks @ gmail . com with the subject line mentioning URL for this Page (i.e, /log4j-example-1.php) or use this LINK. As per this website's privacy policy, we never disclose your email id, though we shall post your comments/suggestions/feedback with your name (optional) and date on this Page. If you don't want your comments/suggestions/feedback to be shared in this Page, please mention so in your email to us. Thank you very much..... If anything missed out , please let me know at techienjoy at yahoo . com
JSF example with source code :
JSF example of Tags and checkboxes 
with source code on Java Platform.
Android Example on Expandable List :
Example on using Expandable ListView
on Android Platform.A step by step source code
explained.
Example of using Mule ESB JMS Transport :
Example of using Mule ESB JMS Transport with simple
to explain source code.
Android Example on Expandable ListView :
Example on using Expandable ListView
on Android Platform.A step by step source code
explained.
Example of using Log4J Part 2 :
Log4j example with source code on Java Platform.
List of Examples on Various Technologies :
List of Examples on Various Technologies and Frameworks.
Google GWT Example :
Example using GWT and some design patterns and various
ways of implementing this example.
Android ImageView Example :
Example on using ImageView using 
Android Platform. A very simple to setup
and see it working.
Android TimePickerDialog Example :
Example on Android TimePickerDialog
explained with a very simple scenario
and appropriate screens captured and shown.
JSF example with source code :
JSF example of Tags and SelectBoxes 
with source code on Java Platform.
Android Tab View Example :
Example on Android Tab View
explained with a very simple scenario
and appropriate screens captured and shown.
Example of using Log4J Part 1 :
Log4j example with source code on Java Platform.
Using Quartz Scheduler Example :
Example on how to use Quartz Scheduler.
Android Gallery with SurfaceView :
Example showing Android Gallery
with SurfaceView and Spinner
JSF example on Resource Bundle :
JSF example of Resource Bundle with source code 
on Java Platform.
Android ListView Example :
Example on Android List View
explained with a very simple scenario 
and article with appropriate screens 
captured and shown.
Android Example on Downloading AnyFormat :
Example on ways to download any file with
any format using Android Platform.
Android Layout Example :
Android Example on using Layout
with source code Explained.
JDBC Transaction Isolation Levels :
A short write-up on JDBC Transaction
Isolation showing ways to achieve
various Isolation levels using JDBC.
Android ListView Example :
Example on Android ListView 
explained with a very simple scenario
whereby showing folder and files with
structure and appropriate screens 
captured and shown.
DOJO Dialog Example :
Example on using DOJO Dialog
explained with a very simple scenario
Android Text to Speech Example :
Android Example on using Text
2 Speech conversion explained with
source code Explained.
Wizard Framework using Java Platform :
Example using Custom Wizard Framework 
with code and explained
JSF example with source code :
JSF example of Tags and Code Walk-through 
with source code on Java Platform.
Android Gallery Example :
Example on Android Gallery View
explained with a very simple scenario
and appropriate screens captured and shown.
Android Image Gradient Merge :
Example using Images and Gradient Shape using
Android Platform.
Android DatePickerDialog Example :
Example on Android DatePickerDialog
explained with a very simple scenario
and appropriate screens captured and shown.
Android Menu and MenuItem Example :
Example using Menu and MenuItem using Android Platform 
with code and explained
Using Apache Commons Log With Example :
Example using Apache commons log 
with code and explained
JSF example on validation :
JSF Validation with example with source code 
on Java Platform.
Web Load Test with example :
Example using Load test functionalities 
with code and explained
JSF example with source code :
JSF example with source code on Java Platform.
DOJO Tree Widget Example :
Example on using DOJO Tree Widget
explained with a very simple scenario
Using Different Logger Files :
Example on using different log files 
using Apache Log4j Framework.
Android Gallery Example Enhanced :
Example on Android Gallery View
explained with a very simple scenario
and appropriate screens captured and shown.
Android Sensors Example :
Example on Android Sensors Listed and
explained with a very simple scenario 
and article with appropriate screens 
captured and shown.
Android ListView Example :
Example on Android ListView and
explained with a very simple scenario 
and article with appropriate screens 
captured and shown.
Android Examples :
List of ANDROid examples
with source code and output
screens captured and shown.
Example of using Mule ESB File Transport :
Example of using Mule ESB File Transport with simple
to explain source code.
JSF example with source code :
JSF example of Tags and Data Table 
with source code on Java Platform.
Example using Tag Library :
Example on how to code and use
Custom Tag Library on Java Platform.


References :
Tags: TabHost and TabActivity Example on Android Platform
Tags: ListView Example on Android Platform
Tags: android sensors list
Tags: android listview example
Tags: android imageview example
Tags: Android example download any file sourcecode
Tags: android expandable list dynamically created example
Tags: android expandable list example
Tags: Android Gallery surfaceviews spinner
Tags: Android example download any file sourcecode
Tags: Android Layout Example
Tags: Android Text To Speech Example

Tags: DOJO Example Dialog
Tags: DOJO Example Tree Widget
Tags: different logger file log4j
Tags: JDBC Transaction isolation
Tags: event handling java code
Tags: example quartz scheduler
Tags: example tag library web application
Tags: Flex
Tags: index
Tags: inmemory image creation java awt
Tags: JSF Example Main
Tags: JSF Example Tags CheckBoxes
Tags: JSF Example Tags dataTable
Tags: JSF Example Tags SelectBoxes
Tags: JSF Example Tags Walkthrough
Tags: JSF Example Validation
Tags: JSF Resource Bundle
Tags: log4j example 1
Tags: log4j example
Tags: Miscellaneous
Tags: Mule ESB File Transport
Tags: Mule ESB JMS Transport
Tags: stream download batch
Tags: sychronized block wait notify
Tags: thread wait notify example
Tags: using apache commons log
Tags: web load test
Tags: Wizard Framework Idea Java



DISCLAIMER :
The content provided in this page is not warranted and/or guaranteed by techienjoy.com. 
techienjoy.com is not liable for any negative consequences that may result/arise from 
implementing directly/indirectly any information covered in these pages/articles/tutorials.

All contents of this site is/are written and provided on an "AS IS" basis,
without WARRANTIES or conditions of any kind, either express or implied, including, without
limitation, merchantability, or fitness for a particular purpose. You are solely responsible
for determining the appropriateness of using or refering this and assume any risks associated
with this.

In spite of all precautions taken to avoid any typo in these pages, there might be some 
issues like grammatical mistakes and typos being observed in these pages, techienjoy.com
extends sincerest apologies to all our visitors for the same.



Android Examples || Android Examples

© Copyright 2010-2012, TECHIENJOY, All Rights Reserved.      Privacy Policy     Disclaimer & Terms & Conditions