/*
Logging In Java with the JDK 1.4 Logging API and Apache log4j
by Samudra Gupta
Apress Copyright 2003
ISBN:1590590996
*/
import java.util.logging.*;
public class FilterDemo
{
private Logger logger = null;
private AgeFilter filter = null;
public FilterDemo()
{
//obtaining a logger object
logger = Logger.getLogger("sam.logging");
//creating a AgeFilter object
filter = new AgeFilter();
//attaching the filter to the logger
logger.setFilter(filter);
}
/**
* This method logs the message
*/
public void logMessage(Person person)
{
//logging the message with Person object as parameter
logger.log(Level.INFO, "Person has age "+person.getAge(), person);
}
public static void main(String args[])
{
FilterDemo demo = new FilterDemo();
//creating Person objects
Person person1 = new Person("Paul", 32);
Person person2 = new Person("sam", 29);
//logging with each Person object
demo.logMessage(person1);
demo.logMessage(person2);
}
}
class Person{
private String name = null;
private int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return age;
}
}
class AgeFilter implements Filter {
public AgeFilter() {
}
/**
* This is the overridden method from the Filter interface.
* It checks the Person object associated with the LogRecord
* checks the age>30, and returns true
*@param record the LogRecord object
*@return boolean true/false
*/
public boolean isLoggable(LogRecord record) {
boolean result = false;
//obtaining the Person object from the record
Object[] objs = record.getParameters();
Person person = (Person)objs[0];
//check if person is not null
if(person !=null) {
//obtain the age
int age = person.getAge();
if(age>30)
result = true;
else
result = false;
}
return result;
}
}
|