Cum pot crea un jurnal numit în $ TOMCAT_HOME/jurnale pentru servletul meu?

În prezent mă înregistrez prin cele mai simple metode din servletul meu folosind Tomcat. Folosesc serverul ServletConfig.getServletContext() pentru a înregistra activitatea. Acest lucru scrie la localhost.YYYY-MM-DD.log în $ TOMCAT_HOME/jurnale.

Nu vreau să scap de simplitatea acestui mecanism de logare decât dacă este absolut necesar. Dar aș dori să denumesc fișierul meu de jurnal. În loc de "localhost" .YYYY-MM-DD.log, există o modalitate de ao scrie în "myAppName" .YYYY-MM-DD.log. Știu că aș putea să creez propriul meu mecanism, dar din nou, caut simplitatea aici.

Sper să stau departe de un cadru complet precum Log4j.

1
Pot face ceea ce vreau (a se vedea răspunsul de mai jos) fără un cadru întreg și tot ceea ce se întâmplă cu acesta, borcanul, curba de învățare etc. Uneori mai puțin mai mult.
adăugat autor dacracot, sursa
Ce ar fi în neregulă cu un cadru ca Log4j? Este standard și are o interfață destul de simplă.
adăugat autor Hans Doggen, sursa

2 răspunsuri

Există o modalitate prin intermediul contului $ TOMCAT_HOME/conf/logging.properties fără să atingeți codul meu de servlet ...

inainte de...

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

după...

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler, 6localhost.org.apache.juli.FileHandler

apoi adauga...

6localhost.org.apache.juli.FileHandler.level = FINE
6localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
6localhost.org.apache.juli.FileHandler.prefix = myAppName.

si adauga...

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].handlers = 6localhost.org.apache.juli.FileHandler

și sări la grămadă. Acest lucru a creat un $ TOMCAT_HOME/logs/myAppName.2008-10-14.log cu mesajul meu simplist doar ServletConfig.getServletContext() .log ().

0
adăugat

Pentru Tomcat 6.x, puteți modifica configurația de înregistrare în conf/logging.properties.

Dar prefer o configurație separată cu Log4j ...

0
adăugat
Există o modalitate de a face logging.properties specifice contextului servletului meu? De asemenea, aș prefera simplitatea, iar Log4j nu mă lovește la fel de simplu (nu neapărat dificil, dar prea încărcat de opțiuni).
adăugat autor dacracot, sursa
log4j este foarte simplu de utilizat. Luați doar 5 minute necesare pentru configurarea acesteia pentru prima dată, utilizați același fișier de configurare log4j.properties sau log4j.xml și veți fi foarte mulțumiți de rezultate (și vă întrebați de ce nu l-ați folosit înainte! ).
adăugat autor matt b, sursa