Bom dia!
Já procurei no google, e estudei sobre o Log4j, porém não encontrei a resposta para o que eu quero.
Eu já estou fazendo o log ser gravado em um arquivo .log mas gostaria de saber como posso configurar um controle para que tenha somente 10 linhas nesse arquivo, tem jeito de fazer isso?
Desde já agradeço.
Segue o código:
[code]public static void main(String[] args) throws IOException {
logger.info(“Efetuando login de usuário”);
BasicConfigurator.configure();
/* Cria um novo FileAppender baseado no layout padrão,
* pré-definido na constante TTCC_CONVERSION_PATTERN
* da classe PatternLayout. */
Appender fileAppender = new FileAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN), "myLogFile.log");
logger.addAppender(fileAppender);
try {
throw new Exception("Loga esse no arquivo, Log4J!");
} catch (Exception e) {
logger.error("Oops, deu erro: " + e.getMessage());
}
} [/code]
[quote=entanglement]10 linhas não. Mas você pode limitar por tamanho (em KB, por exemplo).
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/RollingFileAppender.html
[/quote]
Obrigado!Sua resposta foi precisa e ajudou bastante!
Modifiquei o código como a sugestão, usei a classe RollingFileAppender limitando o nome do arquivo na própria classe e no arquivo properties mas mesmo assim o arquivo gera um log maior do que o estipulado:
Classe:
[code]public static void main(String[] args) throws IOException {
logger.info(“Efetuando login de usuário”);
BasicConfigurator.configure();
/* Cria um novo FileAppender baseado no layout padrão,
* pré-definido na constante TTCC_CONVERSION_PATTERN
* da classe PatternLayout. */
RollingFileAppender rolingFileAppender = new RollingFileAppender(
new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN), "exemplo.log");
rolingFileAppender.setMaxFileSize("1KB");
logger.addAppender(rolingFileAppender);
while(true) {
try {
throw new Exception("Teste com log4j, mensagem de log!");
} catch (Exception e) {
logger.error("Oops, deu erro: " + e.getMessage());
}
}
} [/code]
Arquivo properties:
[code]# Configura dois appenders (stdout para o console, fileout para um arquivo)
para o logger padrão, e configura um nível (INFO). Como todos os
loggers que criamos herdam do logger padrãoo, quaisquer loggers que criarmos
terão esta configuração
log4j.rootCategory=INFO, stdout, fileout
O primeiro appender escreve para o console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
O padrão para apresentação do conteúdo (layout)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
O segundo appender escreve para um arquivo
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=exemplo.log
Controla o tamanho máximo do arquivo de log
log4j.appender.fileout.MaxFileSize=1KB
Arquiva arquivos de log (somente um arquivo de backup)
log4j.appender.fileout.MaxBackupIndex=1
O padrãoo para apresentação do conteúdo (layout)
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=(%F:%L) %p %t %c - %m%n[/code]
O que poderia ser feito pra poder ter esse controle?