2011-11-10 9 views
6

Sono davvero stufo di non essere in grado di risolvere il problema di rotazione del registro tomcat in uno dei nostri server Windows dopo aver dedicato un numero infinito di ore e dopo aver provato varie soluzioni.Come ruotare i registri di tomcat in Windows? Qual è il metodo migliore?

Ambiente: 1.6x Java, Tomcat 6 (in esecuzione come servizio), log4j 1.2, Server 2003 a 32 bit

metodi provati finora.

1) cronolog non ha funzionato, nessun file è stato creato dopo averlo configurato.

2) Gestito per configurare log4j con l'appender DailyRollingFile a livello globale per tomcat, i file di registro vengono creati senza estensione e non vengono ruotati.

3) Provato anche DatedFileAppender, ma non ha avuto molto successo.

4) log4jna provato basato appender registro eventi di Windows per log4j, non ha ottenuto il successo

Si prega di suggerire un metodo facile per finire questo compito.

risposta

4

Apache Tomcat fornisce la directory di configurazione conf, che contiene il file server.xml . Nella parte inferiore di questo file, una riga che include la valvola di regolazione, denominata AccessLogValve deve essere non commentata e modificata.

I parametri e i modelli di valvola predefiniti possono essere facilmente modificati tramite un editor. Le impostazioni per il file di log di accesso, ad esempio può apparire come segue:

<Valve 
className="org.apache.catalina.valves.AccessLogValve." 
directory="logs" 
prefix="mysite." 
suffix=".log" 
pattern='%a %A %b %B %h %l %m %p %q %u %t "%r" %s %U %D %S' 
resolveHosts="false" 
rotatable="true" 
fileDateFormat="yyyy-MM-dd" 
/> 

Questa frase è dalla Tomcat reference:.

"Il parametro fileDateFormat permette un formato di data personalizzato nel nome del file di log degli accessi La data il formato decide anche la frequenza di rotazione del file. Se si desidera ruotare ogni ora, impostare questo valore su: aaaa-MM-gg.HH "

+0

Grazie per il tempo dedicato a scrivermi una risposta così dettagliata. Ti stai avvicinando al problema da una prospettiva completamente diversa. Non sono sicuro se questo risolverà il mio problema o no. Ma a partire da ora sono riuscito a configurare la rotazione dei registri tramite l'appender di dailyrollingfile in log4j –

+1

I registri ancora non vengono ruotati anche dopo aver configurato correttamente l'appender di dailyrollingfile. Penso che log4j non possa rinominare un file quando viene utilizzato da Tomcat in Windows. Per favore suggeriscimi altre opzioni –

0

Ho cercato su come ruotare i registri di Access Valve. Da tutti i dati raccolti finora, la 'rotazione' passerebbe semplicemente al file successivo in base al valore fileDateFormat impostato.

Ad es. il valore "yyyy-MM-dd.HH" creerebbe un nuovo file ogni ora. Ma sembra che i file continueranno a crescere di numero a meno che non si usi un meccanismo esterno come un cron job (in linux) per ripulirli.

1

Ho finalmente risolto il problema dopo un lungo tratto. Questa volta, non ho toccato la configurazione del registro di tomcat. Ho usato una fantastica utility chiamata logrotatewin che è una reimplementazione di logrotate in Windows. Avevo già familiarità con logrotate, quindi impostare logrotatewin era un lavoro facile. Ho dovuto interrompere tomcat in prerun e riavviarlo in postrun affinché la rotazione del registro funzionasse, dato che tomcat blocca il file di registro quando è in esecuzione.

Problemi correlati