Source Code : log4j: A complete example

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

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 = (CustomerOrder) message;
      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 = (CustomerOrder) obj;
      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", 101, 20);
    CustomerOrder order2 = new CustomerOrder("Lemonade", 95, 10);
    CustomerOrder order3 = new CustomerOrder("Chocolate", 223, 5);

    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>
 */



           
         
    
  

Thank with us