Introdução ao Log4J

Olá, gostaria de repassar minha experiência com Log4j.

Estou em um projeto (Pluglet) que precisa de muito log (é um gerador de código à partir de modelos UML 2.0 para EJB).
Foi tentado colocar o log4j no Pluglet (rodando em IBM RSA/RSM) e gerou exception no layout.
Recebi como resposta do suporte da IBM que o log4j não trabalha junto a projetos Pluglet e que deveria neste caso implementar um servidor de log (chamando o log4j) comunicando-se com o pluglet.

Então, eis um caso onde não se aplica o log4j.

Abraços.

Analisando o JavaDoc da API Lo4j, versão 1.2.11, em especial a documentação referente ao uso da classe JDBCAppender, verifiquei que a mesma será substituída futuramente, pois ela não prevê o registro de exceções que ocorrem no código. Gostaria de saber se alguém já tentou fazer os testes para verificar qual tipo de erro ocorreu, e qual é o impacto (desastre) oriundo do mesmo dentro de uma aplicação de médio a grande porte.
Obrigada,
Angela Albarello

Oi,

Gostaria de obter mais exemplos para o uso e configuração da classe JDBCAppender.

Angela Albarello

Olá Angela aqui é apenas pra discutir pontos positivos / negativos do tutorial, algo que ficou faltando… etc…

Se você gostaria mais exemplos poderia tentar o Google
( www.google.com.br )

Ou abrir um novo topico em uma outra parte do GUJ…
http://www.guj.com.br/forums/list.java

Outra dica é ler como fazer perguntas e abrir topicos…
How to ask smart questions.

Afinal de contas nao temos bola de cristal… :wink:

Valeu? até… :thumbup:
[]'s

Manero o artigo…

Tá bem fácil de entender e oferece uma bagagem de conhecimento muito boa para que a pessoa que o leu possa se aprofundar por conta própria…

Show !

Muito legal o artigo, mas a forma de configuração que foi mostrada não é a mais utilizada…
Faltou mostrar como configurar em properties ou XML…

Mais infos sobre o log4j em : http://hotwork.sourceforge.net/hotwork/manual/log4j/log4j-user-guide.html

Abraços!

Cara, de boa…

           este tutorial é EXCELENTE ! ! ! !! ! !! ! ! !! ! !

parabéns pela coesão e pela simplificação das idéias.

See ya

donatinho

Alguem sabe me dizer porque meus logs estão saindo sempre duplicados? já passaram por isso? veja o codigo:


	private void initialize(){
		
	    	BasicConfigurator.configure();
    		Appender fileAppender = null;
	        logger.setLevel(Level.INFO);
		try {
			Date data = new java.util.Date();
			fileName = String.valueOf(dt.format(data));
			fileName = getConfig().getPathLog()+"SysNews_"+fileName+".log";
			String pattern = "[%r] "+getClasse()+" %-2d{dd/MM/yy HH:mm} - %m%n";
			fileAppender = new FileAppender(new PatternLayout(pattern), fileName);
		        logger.addAppender(fileAppender);

		} catch (IOException e) {
			e.printStackTrace();
			logger.error("Erro: "+e.getMessage());			
		}		
	}

Como faço para ler os arquivos gerados pelo log4j?

Quero exibir em uma jsp, por exemplo. O próprio log4j fornece recursos para leitura?

[quote=dukejeffrie]log4j sux.

só tenho isso a dizer.

Ele faz de conta que é configurável, mas pra vc ter um logger só em todas as classes do seu pacote vc tem que fazer na mão… muito burro!!

Ou será que os experts me convencem do contrário??

Tudo de bom![/quote]

Como assim fazer na mão? Escrever a config toda do log4j em cada classe?

Se for isso acho que pode-se fazer assim:
Crie uma Exception que faça toda a config do log4j em um campo estático ou no próprio construtor e lá faça o log. Quando ela for lançada o log será gerado. E você pode criar varias exceptions para cada situação em que você queira um log diferente. Isso em log de erros.

Ótimo tutorial.

muito bom o tutorial, acho que soh faltou mesmo mostrar configuracao do log4j pelo .properties

Cade o tutorial?

HTTP ERROR: 404

NOT_FOUND

RequestURI=/java.artigo.130.1.guj

Powered by Jetty://

Se der da uma arrumada ae, por favor.
Obrigado. :slight_smile:

Se estão falando desse, seus problemas acabaram.

No menu verde tem uma opção com o título ARTIGOS. Entrando lá, pressione CTRL+F no seu browser favorito e digite log4j e, BINGO.

[quote=MegaRevolt]HTTP ERROR: 404

NOT_FOUND

RequestURI=/java.artigo.130.1.guj

Powered by Jetty://

Se der da uma arrumada ae, por favor.
Obrigado. :slight_smile: [/quote]
EDIT: Imaginem se os administradores fossem trocar todos os artigos, tutoriais, etc. linkados em TODAS as mensagens. Pelo amor de Deus.

Verdade, ao invés disso vamos deixar os links quebrados e não vamos notificas via pm os admin.
Afinal, da muito trabalho arrumar os links quebrados.
:thumbup:

[quote=MegaRevolt]Verdade, ao invés disso vamos deixar os links quebrados e não vamos notificas via pm os admin.
Afinal, da muito trabalho arrumar os links quebrados.
:thumbup: [/quote]

Agora você está sendo coerente. Se quiser prestar o serviço de avisar aos admin’s via PM sobre os links que se encontrem quebrados, maravilha.

Mas avisar via broadcast não acrescenta em nada. Pior ainda se não se der ao trabalho de procurar o link correto, postando junto com a mensagem.

Já tinha sido avisado via pm logo apos o primeiro post.
Problema é falar sobre oque não sabe.
1-) eu ja tinha avisado por pm logo apos o primeiro post.
2-) Já tinha localizado o artigo e lido em seguida.

Isso ae champs, continua falando sobre oque não sabe ae.
:thumbup:

Gostaria de saber como posso gravar o log no servidor utilizando o Log4J.
Um abraco, muito obrigado. :wink:

Segue um exemplo:

O segundo appender escreve em um arquivo

log4j.appender.fileOut =org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=ioc.log

Full code (arquivo src/log4j.properties):

#### Usando 2 appenders, 1 para logar no console, outro para um arquivo
log4j.rootCategory=DEBUG, stdout, fileOut

# Imprime somente mensagens com 'priority' WARN ou mais alto para o logger
#lembrando a ordem: DEBUG - INFO - WARN - ERROR - FATAL
log4j.category.br.com.goals.hotcoffe.ioc=DEBUG

# Explicita a herança do nivel de prioridade
#log4j.category.your.category.name=INHERITED

#### O primeiro appender escreve no console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern que mostra o nome do arquivo e numero da linha.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

#### O segundo appender escreve em um arquivo
log4j.appender.fileOut =org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=ioc.log

# Controla o tamanho maximo do arquivo
log4j.appender.fileOut.MaxFileSize=100KB

# Faz backup dos arquivos de log (apenas 1)
log4j.appender.fileOut.MaxBackupIndex=1

log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOut.layout.ConversionPattern=%p %t %c - %m%n