Domanda

Come posso ottenere log4j per eliminare i vecchi file di registro rotanti? So di poter impostare lavori automatizzati (cron per UNIX e attività pianificata per Windows), ma lo voglio multipiattaforma e lo voglio nella configurazione del registro della nostra applicazione come parte della nostra applicazione, piuttosto che in un codice separato all'esterno del sistema operativo linguaggi di script specifici. La nostra applicazione non è scritta nei linguaggi di scripting del sistema operativo e non voglio farne questa parte.

È stato utile?

Soluzione

RollingFileAppender fa questo. Devi solo impostare maxBackupIndex sul valore più alto per il file di backup.

Altri suggerimenti

I registri ruotano per un motivo, in modo da mantenere solo così tanti file di registro in giro. In log4j.xml puoi aggiungerlo al tuo nodo:

<param name="MaxBackupIndex" value="20"/>

Il valore indica a log4j.xml di mantenere solo 20 file di registro ruotati. Puoi limitarlo a 5 se lo desideri o anche 1. Se la tua applicazione non registra così tanti dati e hai 20 file di registro che coprono gli ultimi 8 mesi, ma hai bisogno solo di settimane di registri, allora penso che tu è necessario modificare il log4j.xml " MaxBackupIndex " e " MaxFileSize " params.

In alternativa, se si utilizza un file delle proprietà (anziché l'xml) e si desidera salvare 15 file (ad esempio)

log4j.appender.[appenderName].MaxBackupIndex = 15

Non esiste alcun valore predefinito per controllare l'eliminazione dei vecchi file di registro creati da DailyRollingFileAppender. Ma puoi scrivere il tuo Appender personalizzato che elimina i vecchi file di registro allo stesso modo dell'impostazione di maxBackupIndex per RollingFileAppender.

Trovate semplici istruzioni qui

Da 1 :

Se si sta tentando di utilizzare Apache Log4J DailyRollingFileAppender per un file di registro giornaliero, potrebbe essere necessario specificare il numero massimo di file da conservare. Proprio come il rolling RollingFileAppender supporta maxBackupIndex. Ma la versione corrente di Log4j (Apache log4j 1.2.16) non fornisce alcun meccanismo per eliminare i vecchi file di registro se si utilizza DailyRollingFileAppender. Ho provato a fare piccole modifiche nella versione originale di DailyRollingFileAppender per aggiungere la proprietà maxBackupIndex. Pertanto, sarebbe possibile ripulire i vecchi file di registro che potrebbero non essere necessari per un utilizzo futuro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top