log4j - Extendendo Logger

0 respostas
B

Pessoal, estou tentando utilizar o log4j fazendo uma herança da classe Logger para uma classe minha, mas quando eu tento criar um log acontece um erro...
Poderiam me ajudar ?

Minha classe:
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.FileAppender;
import org.apache.log4j.PatternLayout;

public class LogClient extends Logger {

	public LogClient(String className) {
		super(className);
		System.out.println("Criou o LogClient ["+className+"]");
		setLevel(TYPE_DEBUG);
	}
	
	public static Level TYPE_INFO = Level.INFO;
	public static Level TYPE_DEBUG = Level.DEBUG;
	public static Level TYPE_WARN = Level.WARN;
	public static Level TYPE_ERROR = Level.ERROR;
	public static Level TYPE_FATAL = Level.FATAL;
//	private static Logger logger = Logger.getLogger(LogClient.class);
	private static FileAppender appender = null;
	private static ConsoleAppender cappender = null;

	/**
	 * Cria o arquivo de log, caso o mesmo não exista !
	 *
	 */
	public void createLogClient(){
		BasicConfigurator.configure();
		if(appender == null ){
			PatternLayout playout = new PatternLayout();
			playout.setConversionPattern("[%-2d{dd/MM/yy HH:mm:ss}] [%c] %5p - %m%n");
			try {
				cappender = new ConsoleAppender(playout);
				appender = new FileAppender(playout,"LogClient.log",true);
				this.addAppender(appender);
				this.addAppender(cappender);
			} catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * Insere uma nova linha no log, como padrão TYPE_INFO
	 * @param log Log a ser inserido
	 */
	public void setLogClient(String log){
		this.info(log);
	}
	
	/**
	 * Insere uma nova linha no log, como typo definido
	 * @param log Log a ser inserido
	 * @param type Level do log
	 * @see LogClient.TYPE_*
	 */
	public void setLogClient(String log, Level type){
		if(type == TYPE_DEBUG )
			this.debug(log);
		if(type == TYPE_INFO )
			this.info(log);
		if(type == TYPE_WARN )
			this.warn(log);
		if(type == TYPE_ERROR )
			this.error(log);
		if(type == TYPE_FATAL )
			this.fatal(log);
	}
	
	/**
	 * Define qual o MENOR level do log a ser gravado
	 * @param level
	 * @see LogClient.TYPE_*
	 */
	public void setLevel(Level level){
		super.setLevel(level);
	}
}
E este o erro que dah quando eu acesso meu Singleton para gerar o log:
Criou o LogClient [com.hp.oba.infra.shared.LogClient]
Exception in thread "main" java.lang.NullPointerException
	at org.apache.log4j.Category.info(Category.java:660)
	at com.hp.oba.infra.shared.LogClient.setLogClient(LogClient.java:57)
	at com.hp.oba.startup.JSiapv.loadSiapv(JSiapv.java:25)
	at com.hp.oba.startup.JSiapv.main(JSiapv.java:15)

O que poderia ser ?

Criado 2 de maio de 2006
Respostas 0
Participantes 1