Melhor formato XML para eventos de log em termos de suporte de ferramentas para mineração de dados e visualização?

StackOverflow https://stackoverflow.com/questions/465329

Pergunta

Queremos ser capazes de criar arquivos de log do nosso aplicativo Java que é adequado para processamento posterior por ferramentas para ajudar a investigar os erros e reunir estatísticas de desempenho.

Atualmente nós usamos o "material log que pode ou não pode ser achatada em forma de texto e anexado a um arquivo de log" tradicional, mas isso funciona melhor para pequenas quantidades de informação lido por um humano.

Após cuidadosa consideração, a melhor aposta tem sido a de armazenar os eventos de log como fragmentos XML em arquivos de texto (que é então tratado como qualquer outro arquivo de log), e depois transferi-los para a máquina com a ferramenta adequada para pós-processamento.

Eu gostaria de usar como amplamente suportado um formato XML quanto possível, e agora estou na fase de "pesquisa-then-make-decisão". Eu apreciaria qualquer ajuda tanto em termos de formato XML e ferramentas e eu ficaria feliz em escrever código cola para conseguir o que eu preciso.

O que eu encontrei até agora:

log4j formato XML: Apoiado por motosserra e Vigilog. Lilith formato XML: Apoiado por Lilith

ferramentas não investigada:

Microsoft Log Parser: Aparentemente suporta XML. visualizador de log OS X:

Além disso, há uma grande quantidade de ferramentas on http: // www. loganalysis.org/sections/parsing/generic-log-parsers/

Todas as sugestões?

Foi útil?

Solução 5

Parece que o visualizador de log Lilith contém um formato XML que é bem adequado para lidar com as facilidades adicionais disponíveis em logback e não apenas o log4j coisas.

É - por enquanto - a melhor aposta até agora:)


Eu adaptei a classe log4j xmllayout para logback, que trabalha com motosserra.


Como eu não tenho sido capaz de encontrar um visualizador de log adequado capaz de visualizar informações sobre o evento (em vez de apenas apresentar todos os eventos em uma tabela) que tenho por agora decidiu criar uma máquina de informação parsable muito concisa xml disposição contendo baseado no acima, que podem então ser pós-processados ??pela Microsoft LogParser a qualquer necessidade formato que eu.

Outras dicas

Infelizmente, não posso dar-lhe a resposta que você está procurando, mas eu gostaria de avisá-lo de algo a considerar ao fazer o login para XML. Por exemplo:

<log>
 <msg level="info">I'm a log message</msg>
 <msg level="info">I'm another message</msg>
 <!-- maybe you won't even get here -->
 <msg level="fatal">My server just ate a flaming death

No trecho acima de um XML potencial login você pode ver a maior desvantagem de log para XML. Quando uma falha catastrófica acontecer, seu formato de registro torna-se quebrado porque requer marcas de fechamento. No entanto, se você estiver usando um programa que analisa sua saída de log primário, isso não deve ser demasiado de um problema.

Se você está definindo sua própria escrita arquivo de log XML, você não precisa se preocupar em ter um fechamento e abertura tag, a fim de produzir um XML válido. A resposta de Elias está certo em que você tem a questão se você quiser criar um XML documento , mas isso não é necessário off reta. O padrão W3 também define XML Entidades (ver secção 4.3 da especificação XML 1.0 da W3, segunda edição, que infelizmente eu não posso link para para você, porque eu não tenho pontos suficientes), o que seria mais adequado para-style log acrescentando contínua para um arquivo sem reescrever partes do mesmo. Você pode então criar um XML referência invólucro documento se você precisa trabalhar com um documento XML real em vez de uma entidade XML (ver http://www.perlmonks.org/?node_id=217788#217797 para um exemplo)

Uma das coisas agradáveis ??em log4j é que ele oferece agradáveis ??possibilidades de personalizar os formatos de log e onde aqueles são escritos.

Assim, em vez de escolher algum formato de arquivo de log, eu escolheria alguma biblioteca de registro que permite alterar o formato e permite também obter o registro diretamente para algum programa.

Eu aconselho você considerar logback de acesso para eventos.

Além disso, qualquer coisa usando JMX, como foi feito para coincidir com o conjunto de recursos do SNMP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top