Uso de log4j!

0 respostas
A

Acontece o seguinte, tive q criar log’s numa aplicação simples de deleção de registros em tabelas especificas, importei o jar do log4j para a aplicação e criei os log’s na aplicação…

public class LimpaPalm

{

static Logger logger = Logger.getLogger(LimpaPalm.class);

/**

* @param args

* @throws IOException

*/

public static void main(String[ ] args) throws IOException

{

String ambiente = args[0].trim().toUpperCase();
ConfigFile cf = new ConfigFile("limpapalm." + ambiente + ".config");
	Statement stmt = null;
	int retorno = 0;
	
	Appender fileAppender = new FileAppender(new PatternLayout("%d{dd/MM HH:mm:ss} %-5p [%13F:%L] %1x - %m%n"), "LimpaPalm.log");
	logger.addAppender(fileAppender);
	
	try
	{
		logger.info("Inicializando deleção das tabelas.");
		int qtdeSql = Integer.parseInt(cf.getProperty("qtdeSql", ""));
		int qtdeDias = Integer.parseInt(cf.getProperty("qtdeDias", ""));
		stmt = getConnection(cf).createStatement();

		for (int i = 1; i <= qtdeSql; i++)
		{
			String sql = cf.getProperty("Sql" + i, "");
			DateX datax = new DateX();
			datax.setNow();
			datax.addDays(- qtdeDias);
			String dataLimite = datax.getGregorianString("yyMMdd");
			if(sql.indexOf("dataLimite") > 0)
				sql = sql.replaceAll("dataLimite", "'" + dataLimite+ "'");
			retorno = stmt.executeUpdate(sql);
			//System.out.println(">> (" + getNow() + ") Sql Executado: " + sql + ".\n>>Quantidade de registros: " + retorno);
			logger.debug("SQL " + i + " executado com sucesso!");
			logger.debug("SQL " + i + " ->" + sql);
			logger.info("Registros deletados SQL " + i + ": " + retorno);
		}
	}
	catch (Exception e)
	{
		//System.out.println(">> (" + getNow() + ") Erro ao Executar SQL ");
		logger.warn("Erro ao executar SQL ->" + e.getMessage());
		//e.printStackTrace();
	}
	finally
	{
		try{
			logger.info("Fechando conexao.");
			stmt.close();
		}catch (Exception e){
			logger.warn("Erro ao fechar conexao -> " + e.getMessage());
			e.printStackTrace();
		}
	}

}
private static Connection getConnection(ConfigFile cf) throws Exception 
{
	Connection con = null;

	String driver = cf.getProperty("driver", "");
	String url = cf.getProperty("url", "");
	String username = cf.getProperty("username", "");
	String password = cf.getProperty("password", "");

try
{
    logger.info("Iniciando Conexão.");
    Class.forName(driver);
    con = DriverManager.getConnection(url,username,password);
    if(con!=null) System.out.println("Connection Successful!");
		
}
catch(Exception e)
{
  //System.out.println("Error Trace in getConnection() : " + e.getMessage());
	logger.warn("Error Trace in getConnection() : " + e.getMessage());
  throw e;
}
return con;
}

Mas ao rodar a aplicação ele gerava meu arquivo de log mas lançava a seguinte msg no console…

log4j:WARN No appenders could be found for logger (LimpaPalm).
log4j:WARN Please initialize the log4j system properly.

Entao criei um arquivo log4j.properties como vi em exemplos na internet e coloquei na raiz da minha aplicação…

log4j.rootCategory=, A1

A1 is set to be a LogMonitorAppender which outputs to a swing

logging console.

log4j.appender.A1=org.apache.log4j.lf5.LF5Appender

Após isso, ao rodar a aplicação, não é mais lançada a msg no console, meu arquivo .log é criado como desejado e um programa chamado LogFactor5 é rodado automaticamente mostrando a tabela dos logs da minha aplicação
Não sei se o q fiz está certo, pois como disse é a primeira experiencia q tenho com log4j, e além disso ainda tenho outro problema, eu preciso usar o chainsaw (programa que vc fala na revista) para visualizar meus logs da aplicação, só q não consigo de maneira nenhuma fazer isso, já tentei muita coisa.

Sinceramente estou meio perdido, não sei se está certo com eu fiz, não sei pq ao rodar minha aplicação esse LogFactor5 roda automaticamente e nem consigo usar o chainsaw para visualização dos logs rssss como vc pode ver não sei muita coisa rsssss e nem acho nada que me ajude na internet…

Gostaria de saber se é possivel alguém me ajudar de alguma maneira, pois dando certo nessa aplicação o log4j será padrão em todas outras aplicações, e será meio dificil se eu ainda estiver “perdido” assim.

Fico no aguardo

Desde já obrigado

Criado 12 de julho de 2006
Respostas 0
Participantes 1