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:
[code]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);
}
}
[/code]
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 ?