2009-07-18 19 views
39

Ho un'installazione Tomcat predefinita senza modifiche alla configurazione di registrazione. Sembra che i file di registro (in particolare catalina.out) vengano visualizzati correttamente (giornalmente).catalina.out rolling con Tomcat 6.0

Tuttavia oltre ai registri giornalieri è disponibile anche un file catalina.out, che continua a crescere. Questo è quello che ho bisogno di risolvere, cioè averlo cancellato giornalmente (o rimuoverlo del tutto se possibile)

Qualcuno può spiegare cosa sta succedendo qui e la migliore strategia migliore per controllare quella dimensione del file di registro?

solo per chiarire l'uscita è in corso la scrittura catalina.out e il registro giornaliero contemporaneamente

-rw-r--r-- 1 solr solr 90920663 Jul 18 01:16 logs/catalina.2009-07-18.log 
-rw-r--r-- 1 solr solr  238010 Jul 18 01:16 logs/catalina.out 

Impostazione swallowOutput sembra non fare alcuna differenza.

L'applicazione eseguita sotto tomcat è solr nel caso sia rilevante.

+1

La prima occorrenza di "catalina.out" è probabilmente errata. È "catalina.log" che viene ruotato quotidianamente. – ceztko

risposta

65

Corretto, la configurazione di registrazione standard definisce un registratore di file e anche un registratore di console. Il registratore di file va al log giornaliero di catalina e il logger della console scrive su catalina.out.

Fix è stato quello di cambiare in conf/logging.properties:

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 

a

.handlers = 1catalina.org.apache.juli.FileHandler 

che ferma qualsiasi cosa ottenendo scritto catalina.out

+0

Buono a sapersi - grazie per l'aggiornamento. – ars

+9

Volevo solo dire che questo non si ferma un programma che specifica qualcosa di simile nel proprio file log4j.properties: log4j.rootLogger = DEBUG, stdout, file di log Quelli ancora ottenere scaricati sullo standard output e messo in catalina.out. Solo qualcosa da tenere d'occhio ... –

+0

Dove vanno i log se non sono loggati in catalina.out? Mi riferisco principalmente catalina.out per il debug e ho bisogno di quei registri. –

4

Hi si consiglia di provare questo soluzione

http://java.dzone.com/articles/how-rotate-tomcat-catalinaout

Usa un cronjob (logrotate) per copiare, comprimere e pulire il tuo catalina.out e se dai un'occhiata a logrotate vedrai che ha un sacco di funzionalità aggiuntive. Non interferisce con i registri giornalieri, a meno che non lo si configuri. L'ho trovato utile quando mi sono confrontato con lo stesso problema.

La rimozione di BTW del gestore della console ha effetto solo sui messaggi prodotti da Tomcat.

+1

Quando eseguo '/ usr/sbin/logrotate/etc/logrotate.conf' dopo aver configurato'/var/log/tomcat/catalina.out' ancora non risolve il mio problema di ruotare il file 'catalina.out' –

+0

Un altro La cosa è che ruoterà ogni giorno. Cosa succede se voglio ruotare come e quando la dimensione del file di registro raggiunge la dimensione massima allocata? –

1

Ho avuto lo stesso problema sul server SOLR di Ubuntu 11.04 e il file catalina.out era quasi 1 GB. Dopo

logging.properties mutevoli:

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

a

. handlers = 1catalina.org.apache.juli.FileHandler

che blocca l'accesso a catalina.out

Potete trovare logging.properties file sul /etc cartella/tomcat6/ per Ubuntu Linux.

0

Ho anche notato che la cartella del mio tomcat (/usr/local/tomcat/logs) era piuttosto grande. Per verificare le dimensioni della cartella di registro, effettuare le seguenti operazioni du -hs /usr/local/tomcat/logs/. Per risolvere questo problema impostando un cron che pulisce i file ogni notte o puoi eseguire questi comandi manualmente. Ecco lo script di shell che avrebbe eliminare i file che sono più vecchi di 5 giorni

#!/bin/sh 
find /usr/local/tomcat/logs -name 'catalina.*.log' -mtime +5 -print0 | xargs -0 rm -f 
find /usr/local/tomcat/logs -name 'localhost_access_log.*.txt' -mtime +5 -print0 | xargs -0 rm -f 
0

è possibile ruotare il file catalina.out da configurare: -

Passi: -

  • 1) Goto /etc/logrotate.d e creare file tomcat

  • 2) Incollare sotto la linea

  • Ruota di dimensioni

/opt/OS/OS2/logs/catalina.out {
copytruncate
quotidiana
ruotare 30
impacco
missingok
dimensioni 20M
}

- dimensione - backup catelina.out se la dimensione è maggiore di 20 MB

O

  • Ruota di Data

/opt/deadpool/apache-tomcat/logs/catalina.out {

copytruncate

dateext

quotidiana

ruotare 30

impacco

missingok

}

  • gira - Salva lo scorso 30 rotazione
  • dateext - backup di tutti i giorni catelina.out
  • quotidiana - Rotazione base giornaliera
  • compressa - rotazione in forma compressa
  • missingok - se manca qualcosa in rotazione si creerà alcun impect

3) Riavviare il server

Il suo lavoro per me :) Spero che questo vi aiuterà qualcuno.

Grazie :)