log4j: A complete example : Log4j « Language Basics « Java

Java
1. 2D Graphics GUI
2. 3D
3. Advanced Graphics
4. Ant
5. Apache Common
6. Chart
7. Collections Data Structure
8. Database SQL JDBC
9. Design Pattern
10. Development Class
11. Email
12. Event
13. File Input Output
14. Game
15. Hibernate
16. J2EE
17. J2ME
18. JDK 6
19. JSP
20. JSTL
21. Language Basics
22. Network Protocol
23. PDF RTF
24. Regular Expressions
25. Security
26. Servlets
27. Spring
28. Swing Components
29. Swing JFC
30. SWT JFace Eclipse
31. Threads
32. Tiny Application
33. Velocity
34. Web Services SOA
35. XML
Microsoft Office Word 2007 Tutorial
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Java » Language Basics » Log4jScreenshots 
log4j: A complete example
log4j: A complete example

/*
Logging In Java with the JDK 1.4 Logging API and Apache log4j
by Samudra Gupta    
Apress Copyright 2003 
ISBN:1590590996

*/

import org.apache.log4j.or.ObjectRenderer;
import org.apache.log4j.Logger;

import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;

class CustomerOrder {

  /** Holds value of property productName. */
  private String productName;

  /** Holds value of property productCode. */
  private int productCode;

  /** Holds value of property productPrice. */
  private int productPrice;

  /** Creates a new instance of CustomerOrder */
  public CustomerOrder() {
  }

  public CustomerOrder(String name, int code, int price) {
    this.productCode = code;
    this.productPrice = price;
    this.productName = name;
  }

  /**
   * Getter for property productName.
   
   @return Value of property productName.
   */
  public String getProductName() {
    return this.productName;
  }

  /**
   * Setter for property productName.
   
   @param productName
   *            New value of property productName.
   */
  public void setProductName(String productName) {
    this.productName = productName;
  }

  /**
   * Getter for property productCode.
   
   @return Value of property productCode.
   */
  public int getProductCode() {
    return this.productCode;
  }

  /**
   * Setter for property productCode.
   
   @param productCode
   *            New value of property productCode.
   */
  public void setProductCode(int productCode) {
    this.productCode = productCode;
  }

  /**
   * Getter for property productPrice.
   
   @return Value of property productPrice.
   */
  public int getProductPrice() {
    return this.productPrice;
  }

  /**
   * Setter for property productPrice.
   
   @param productPrice
   *            New value of property productPrice.
   */
  public void setProductPrice(int productPrice) {
    this.productPrice = productPrice;
  }
}

class ProductFilter extends Filter {
  /** Creates a new instance of ProductFilter */
  public ProductFilter() {
  }

  public int decide(LoggingEvent event) {
    int result = this.ACCEPT;
    //obtaining the message object passed through Logger
    Object message = event.getMessage();
    //checking if the message object is of correct type
    if (message instanceof CustomerOrder) {
      CustomerOrder order = (CustomerOrdermessage;
      int productCode = order.getProductCode();
      //checking for the product code greater than 100 only
      if (productCode < 100) {
        result = this.DENY;
      }
    else {
      //this filter can ignore this, pass to next filter
      result = this.NEUTRAL;
    }

    return result;
  }
}

class OrderRenderer implements ObjectRenderer {
  private static final String separator = "-";

  /** Creates a new instance of OrderRenderer */
  public OrderRenderer() {
  }

  public String doRender(Object obj) {
    StringBuffer buffer = new StringBuffer(50);
    CustomerOrder order = null;
    String productName = null;
    int productCode = 0;
    int productPrice = 0;
    //check if the instance is of correct type CustomerOrder
    if (obj instanceof CustomerOrder) {
      order = (CustomerOrderobj;
      productName = order.getProductName();
      productCode = order.getProductCode();
      productPrice = order.getProductPrice();

      buffer.append(productName);
      buffer.append(separator);
      buffer.append(new Integer(productCode).toString());
      buffer.append(separator);
      buffer.append(new Integer(productPrice).toString());
    }

    return buffer.toString();
  }
}

public class ProductFilterDemo {
  private static Logger logger = Logger.getLogger("name");

  /** Creates a new instance of ProductFilterDemo */
  public ProductFilterDemo() {
  }

  public void processOrder(CustomerOrder order) {
    logger.info(order);
  }

  public static void main(String args[]) {
    CustomerOrder order1 = new CustomerOrder("Beer"10120);
    CustomerOrder order2 = new CustomerOrder("Lemonade"9510);
    CustomerOrder order3 = new CustomerOrder("Chocolate"2235);

    ProductFilterDemo demo = new ProductFilterDemo();
    demo.processOrder(order1);
    demo.processOrder(order2);
    demo.processOrder(order3);
  }
}
//filter_properties.xml
/*
 
 * <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM
 * "log4j.dtd">
 
 * <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
 * <renderer renderedClass="com.apress.business.CustomerOrder"
 * renderingClass="com.apress.logging.log4j.renderer.OrderRenderer"> </renderer>
 
 * <appender name="A1" class="org.apache.log4j.ConsoleAppender">
 
 * <layout class="org.apache.log4j.PatternLayout"> <param
 * name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/> </layout> <filter
 * class="com.apress.logging.log4j.filter.ProductFilter"/> </appender>
 
 * <logger name="com.apress.logging.log4j"> <level value="debug"/> <appender-ref
 * ref="A1"/> </logger> </log4j:configuration>
 */



           
       
Related examples in the same category
1. Example log4j Configuration File
2. log4j: simple loglog4j: simple log
3. log4j: log and servlet
4. log4j: File Based Logg Demolog4j: File Based Logg Demo
5. log4j: asynchronous log log4j: asynchronous log
6. log4j: layout demolog4j: layout demo
7. log4j: advanced loglog4j: advanced log
w__w_w_.___ja_v___a___2___s.___c___o__m___ | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.