2015-03-11 22 views
5

Stworzyłem aplikację webową działającą na Tomcat 8. Jak zawsze chcę użyć slf4j iw tym przypadku wspieranym przez java.util.logging (ponieważ jest to domyślnie dla Tomcat). Odpowiednie zależności to:jak zalogować się do tomcata za pomocą slf4j i java.util.logging

<!-- logging --> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.10</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-jdk14</artifactId> 
    <version>1.7.10</version> 
    <scope>runtime</scope> 
</dependency> 

Dodałem kilka instrukcji do kodu (informacje i debugowanie), ale nie mogę ich znaleźć. Ani w wyjściu konsoli (jeśli uruchomię Tomcat od zaćmienia), ani w żadnym z plików dziennika utworzonych w folderze/logs (Moja aplikacja działa poprawnie).

Czego tu brakuje? Czy muszę dodać coś do conf/logging.properties (nie chcę spakować żadnej konfiguracji dziennika do mojej aplikacji)? Czy istnieje przykład, jak skonfigurować rejestrowanie danej aplikacji internetowej wdrożonej w tomcat?

Odpowiedz

2

Jedynym problemem była konfiguracja po stronie Tomcat. Ponieważ Tomcat nie używa zwykłego java.util.logging, konfiguracja jest trochę inna. Więc dodając kilka linii do conf/logging.properties pomógł:

... 

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

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

############################################################ 
# Handler specific properties. 
# Describes specific configuration info for Handlers. 
############################################################ 

1catalina.org.apache.juli.AsyncFileHandler.level = FINE 
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 

2localhost.org.apache.juli.AsyncFileHandler.level = FINE 
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 

3manager.org.apache.juli.AsyncFileHandler.level = FINE 
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 

5reportExport.org.apache.juli.AsyncFileHandler.level = FINE 
5reportExport.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
5reportExport.org.apache.juli.AsyncFileHandler.prefix = reportExport. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter 


############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler 

com.prodyna.reportExport.level = FINE 
com.prodyna.reportExport.handlers = 5reportExport.org.apache.juli.AsyncFileHandler 

# For example, set the org.apache.catalina.util.LifecycleBase logger to log 
# each component that extends LifecycleBase changing state: 
#org.apache.catalina.util.LifecycleBase.level = FINE 

# To see debug messages in TldLocationsCache, uncomment the following line: 
#org.apache.jasper.compiler.TldLocationsCache.level = FINE 

więc dodałam aditional obsługi „5reportExport.org.apache.juli.AsyncFileHandler”, aby dostać swoje rzeczy w oddzielnym pliku. Następnie skonfigurowałem ten moduł obsługi tak, jak inne. Zasadniczą część znajduje się na końcu:

com.prodyna.reportExport.level = FINE 
com.prodyna.reportExport.handlers = 5reportExport.org.apache.juli.AsyncFileHandler 

używa skonfigurowanej obsługi dla wszystkich klas w opakowaniu com.prodyna.reportExport.

+0

Próbuję osiągnąć to samo, ale logi nie pojawiają się w skonfigurowanym pliku, pojawiają się tylko w catalina.out. Kiedy bezpośrednio używam rejestrowania java util, dzienniki są widoczne w pliku. Wszelkie sugestie dotyczące rozwiązania tego problemu? TIA – abhishekmahawar

Powiązane problemy