Log4Net può cancellare automaticamente i file di registro?

Sto usando log4net RollingFileAppender in un programma di servizio di Windows scritto in C #. Il numero e la dimensione dei file nella directory dei registri sta crescendo troppo velocemente, è necessario pulirli. La configurazione è di seguito:

          

Voglio solo conservare 30 giorni di log. Come posso configurare log4net per eliminare automaticamente i log? Se non disponibile tramite log4net, quali soluzioni dovrei avere?

Grazie in anticipo.

Ecco un’altra domanda da qui su SO che chiede essenzialmente la stessa cosa: Log4Net: imposta i file di backup Max su RollingFileAppender con rolling Date

Il consenso era che log4net non lo supporta direttamente. Un manifesto afferma che è stato implementato nel repository del codice sorgente di log4net, ma non è ancora stato rilasciato. Un altro poster mostra un codice che usa per pulire periodicamente i vecchi file.

Sono abbastanza sicuro che non puoi fare con l’appender esistente, anche se non posso confermarlo.

Tuttavia, vedo due opzioni:

  1. Crea il tuo appender, sottoclassi RollingFileAppender (o, se vuoi più controllo, sottoclass FileAppender). Quindi cambia il tuo file di configurazione per usare quell’appender (cambia l’elemento appender).
  2. Creare un file .bat che cancella i file più vecchi di x giorni (vedere: File batch per eliminare i file più vecchi di N giorni ). Quindi creare un’attività in Windows ( http://support.microsoft.com/kb/308569 ) che esegue questo file bat, ad esempio ogni giorno.

Questo dovrebbe fornire un aiuto. Cerca la sezione RollingFileAppender