Dove sono i miei registri Tomcat?


26

Ho installato Tomcat6 su un server Ubuntu 9.04 usando apt-get install tomcat6. Ho caricato un WAR usando l'interfaccia del gestore e ho provato ad avviare l'applicazione ma ho ricevuto un errore piuttosto generico sull'interfaccia Web dicendo che non poteva essere avviato.

Sto cercando di trovare i registri per determinare perché la mia guerra non inizierà (sospetto di avere poca memoria perché sono su un piccolo VPS) ma non so dove siano.

/ var / lib / tomcat6 / logs è vuoto. La mia splash page Tomcat mi informa in modo affidabile di quanto segue;

Tomcat is installed with CATALINA_HOME in /usr/share/tomcat6 
CATALINA_BASE in /var/lib/tomcat6, 
following the rules from /usr/share/doc/tomcat6-common/RUNNING.txt.gz.

AGGIORNARE

Ho provato a correre;

$ ps -ax 
/usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid

Ma non c'è nulla in / var / log / syslog

Anche correre

$ losof -p PID

non ha mostrato alcun file di registro ...

$  for PID in $(pgrep jsvc);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
l-wx------ 1 root 500 64 2010-03-30 13:29 1 -> pipe:[301470406]
lrwx------ 1 root 500 64 2010-03-30 13:29 1 -> /dev/null
l-wx------ 1 root root 64 2010-03-30 13:29 1 -> pipe:[301470406]

Grazie,

Gav

Risposte:


5

Molto tardi a questa discussione, ma sembra che il file 03catalina.policy sia in tomcat5.5 che in tomcat6 in realtà non permetta di scrivere su file di log.

La soluzione più semplice è modificare le autorizzazioni JULI in:

// These permissions apply to JULI
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
    permission java.security.AllPermission;
};

Ovviamente, potrebbero esserci problemi di sicurezza di cui non sono a conoscenza, ma non riesco davvero a preoccuparmi di scavare più a fondo - ho speso troppo tempo su questo me stesso.


Grazie per l'aggiornamento, non l'ho mai fatto funzionare da solo e ora che VPS è morto. Per me ha senso che i registri non venivano scritti in quanto non ho mai visto un handle aperto durante l'avvio del server.
Gav

34

Un trucco accurato è quello di eseguire il comando " lsof -p PID" dove PID è l'id di processo del tuo server Tomcat. Questo comando ti fornirà un elenco di tutti i file aperti dal processo, incluso il file di registro. Vedi la pagina di Wikipedia .


È un consiglio fantastico! Sfortunatamente nessuno dei miei processi ha un file di registro ... non sono sicuro di cosa significhi.
martedì

2
Potrebbe significare che il processo non è stato in grado di aprire il file di registro. Dovresti avere degli errori registrati su console / STDOUT. Se stai usando Linux puoi provarefor PID in $(pgrep java);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
Mircea Vutcovici

Usare apt-get per installare Tomcat significa che è configurato per funzionare come demone usando jsvc. Ho appena richiesto una modifica del tuo comando in (java -> jsvc). Lo snippet ha restituito l'output in fondo alla mia domanda (la formattazione dei commenti è illeggibile).
Gav

19

Per impostazione predefinita, controlla

/var/log/tomcat6/catalina.out 

o qualcosa di simile

e controlla le proprietà di accesso

/usr/share/tomcat6/conf/logging.properties

di solito / usr / share / tomcat6 / conf / è il collegamento simbolico a / etc / tomcat6 /


/var/log/tomcat6/catalina.out non esiste e nemmeno la cartella / usr / share / tomcat6 / conf. /etc/tomcat6/logging.properties suggerisce che $ {catalina.base} / logs è la directory che sto cercando ma, come ho detto, non c'è scritto nulla. Ho hum :(
gav

4

Dovrebbero essere a CATALINA_HOME/logs

L'ho visto più spesso a /opt/tomcat/logs, ma nel tuo caso potrebbe essere/usr/share/logs


1

Per impostazione predefinita, i log di Tomcat sono presenti /var/log/tomcat?e di /var/lib/tomcat7/logssolito puntano a lì.

Come root, puoi controllarli tramite:

tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out

Se hai ancora problemi, prova a trovarli tramite:

sudo lsof | grep -E "java.*(out|txt|log)$"

-1

possiamo trovare registri come di seguito per Windows. C: \ Programmi \ Apache Software Foundation \ Tomcat 9.0 \ logs

fare riferimento anche a C: \ Programmi \ Apache Software Foundation \ Tomcat 9.0 \ conf \ logging-properties.


2
La domanda pubblicata fa riferimento a un'installazione Linux (specificamente Ubuntu). La risposta che hai dato è per un'installazione basata su Windows. Inoltre, questa domanda ha già una risposta accettata.
Corey S.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.