É possível com qualquer um dos anexos do log4j gravar os logs com tempo de rotação e limite de retenção específicos.
O objetivo seria:
- ter um arquivo de log para cada dia; crie um novo arquivo à meia-noite para os novos logs
- manter os arquivos de log e excluí-los automaticamente após um certo período de tempo; exclua os arquivos de log com mais de X dias (por exemplo, 30 dias)
Parece que a rotação é possível, mas o limite do tempo de retenção não é possível com log4j
A versão do log4j é 1.2.
sim, nós podemos!
Arquivo:
project->src->main->resources->logback.xml
Para mais informações consulte a documentação: TimeBasedRollingPolicy
JavaDoc: TimeBasedRollingPolicy
fonte
A maioria das respostas é baseada em logback. Mas a questão é sobre log4j 1.2 (antigo ...)
a resposta mencionando DailyRollingFileAppender também não funcionará.
org.apache.log4j.DailyRollingFileAppender
não suporta aMaxBackupIndex
propriedade, consulte http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html (isto é paraRollingFileAppender
)você pode estar interessado em: Use MaxBackupIndex no DailyRollingFileAppender -log4j
e para uma possível resposta: Log4j Rollingpolicy e MaxbackupIndex
Mas você provavelmente deve usar a "emulação" do slf4j log4j ( http://www.slf4j.org/legacy.html#log4j-over-slf4j ) e rotear seu log pelo logback (sem nenhuma alteração de código), onde é muito mais fácil implementar .
fonte