Como vocês fazem seus log's

10 respostas
khaoz

Buenas pessoal.
Como vocês fazem os log’s das aplicações de vocês ? (log’s de inserção, exclusão, alteração):

  • Uma tabela no próprio banco de dados ?
  • Opção anterior + salvando em arquivos no HD de tempos em tempos, compactando os mesmos, e limpando a tabela.
  • Uma nova base separada, com uma única tabela para esse propósito tendo em vista o rápido crescimento de informações nessa tabela ?
  • Em arquivos no HD, compactando a cada “n” tempo para que não fiquem diversos arquivos soltos ?

Caso a resposta seja a questão de aqruivos no HD, qual a melhor forma de pesquisa nesses arquivos. Por exemplo: Tenho em mãos o código auto-incremento de um determinado registro que foi alterado. Preciso consultar ele no log para saber o histórico de alterações e para isso vou ter que catar arquivo por arquivo (descompactando e compactdo) até localizar um que contenha essa informação.

Atualmente eu gravo em uma tabela no banco de dados, porém estou remodelando algumas coisas e o log é um dos principais assuntos :).

10 Respostas

D

usa o log4j…ele cria um arquivo .log e para enviar mensagens de logo é bem simples

//cria um atributo para gravar o arquivo no arquivo de log
private Category log = null;

log = Log.getInstance("referencia", "arquivo.properties");

//grava uma mensagem
log.info("teste de log");

//Classe Log.java
public final class Log{

	private static Category log = null;

	
    public static Category getLogging(String referece, String arqProperty){
    	try{    	
			PropertyConfigurator.configure(SystemEx.convFilePath("./etc/" +  arqProperty));
			log = Category.getInstance(referece);
    	}catch(Throwable th){
    		th.printStackTrace();
    		System.exit(-1);
    	}    
		return log;
    }
}

Com isso vc consegue gerar arquivos de log…

Mias informações em http://logging.apache.org/log4j/docs/

[]'s

Java_Vinicius_Machin

Usando POA, se for coisa bem simples. :smiley:

khaoz

Eu acredito que seja simples. Meu objetivo é saber quantos registros o usuário lançou no mês (é uma dos pontos de avaliação utilizados). Os alterados e excluidos também vão contar, mas de forma diferente.
Além disso, quero poder consultar o log de alterações e exclusões para saber se alguém fez bobagem com alguma informação. :wink:

Java_Vinicius_Machin

Eu acredito que seja simples. Meu objetivo é saber quantos registros o usuário lançou no mês (é uma dos pontos de avaliação utilizados). Os alterados e excluidos também vão contar, mas de forma diferente.
Além disso, quero poder consultar o log de alterações e exclusões para saber se alguém fez bobagem com alguma informação. ;)

É razoavelmente fácil fazer sim! :smiley:

Rodrigo_Carvalho_Aul

Aqui em alguns projetos usamos um banco de auditoria separado com uma estrutura de tabelas quase idêntica à estrutura do banco de produção. Em produção colocamos triggers que replica os dados inseridos e alterados no banco de auditoria. A diferença entre os bancos é que no de auditoria não tem índices e chaves primárias.

[]'s

Rodrigo Auler

boaglio

Vc precisa desse histórico em banco de dados mesmo?

Tome cuidado que isso pode impactar na performance de sua aplicação.

khaoz

A questão de usar no banco de dados é pela velocidade e facilidade de consulta. Mas eu vou criar um DB paralelo e as tabelas de auditoria neles, como citou o amigo anteriormente.
Porém esse novo banco não terá a mesma estrutura. Apenas uma tabela para relacionar o usuário ao registro incluido, alterado ou excuido e um campo que irá armazenar, no caso de alteração ou exclusão, o conteúdo do antigo registro e do novo registro se for o caso.

ASOBrasil

Se for por essas opções, é mais fácil salvar o arquivo em XML e utilizar o Chainsaw! Muito mais rápido e prático!

Link:
http://logging.apache.org/log4j/docs/chainsaw.html

ASOBrasil

A

Khaoz, faco exatamente o que voce faz…
Eu log em BD…
Mas vou te falar, que nunca pensei no que o boaglio falou…

Sera que existe uma forma mais correta de se fazer?

louds

Auditoria é algo que o sistema precisa suportar? Ela precisa ser online? Grava em log e manda os caras auditarem esses arquivos, muito mais facil.

Logs de auditoria acabam sendo lidos somente de sistemas com exigencias legais de autitabilidade.

Criado 21 de março de 2007
Ultima resposta 21 de mar. de 2007
Respostas 10
Participantes 8