PDA

View Full Version : tomcat, servlet e log


cn73
17-06-2004, 11:45
COme faccio ad assegnare al file di log relativo ad una servlet il ruolo di standard error?? Il risultato di una exception.printStackTrace(System.err), mi viene sputato a video nella finestrella dos relativa a mTomcat e non nel file log!!

cn73
17-06-2004, 16:05
non mi sono spiegato bene? :confused:

texerasmo
17-06-2004, 16:09
prova così ..

nel server.xml


<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
<!-- tuawebbapp configurazione del contesto -->
<Context path="/tuawebbapp " docBase="tuawebbapp " debug="0" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_tuawebbapp _log." suffix=".txt" timestamp="true"/>

......
...
....

Angus
17-06-2004, 16:26
ma puoi modificare la servlet che ti spara lo stacktrace sul System.err?

In caso affermativo allora è facile: usa il metodo log(String message, Throwable t).

Altrimenti diventa tutto + complesso. Potresti provare a redirigere il System.err tramite System.setErr(PrintStream err) verso una sottoclasse di PrintStream che abbia un riferimento al web-context per poterne usare i metodi di logging.

Altrimenti ancora non ho capito una mazza :D

cn73
17-06-2004, 16:30
Avevo già provato il primo consiglio...il fatto è che uso delle System.err.println che funzionano solo prima del dopost() della servlet!

Con Apache http la System.err o la ex.printStackTrace() scriveva tutto sul log!

cmq ora provo il metodo log()...

cn73
17-06-2004, 16:44
Ottimo il metodo log funziona ;)

Angus
17-06-2004, 16:48
Originariamente inviato da cn73
cmq ora provo il metodo log()...

se puoi evita sempre cose come System.err per loggare: l'utilizzo dei canali in, out e in parte err è più pertinente quando si cerca l'interoperabilità tra i processi.

e poi il metodo log è più figo e soprattutto redirezionabile tramite descrittore xml del web context, come ci ha mostrato il prode texerasmo.

cn73
17-06-2004, 17:46
Perfetto grazie! Uso da poco Tomcat e questa informazione è utilissima ;)