2015-09-26 38 views
6

My logging.properties w Eclipse wyglądało to kiedy początkowo pisał to pytanie:Tomcat7 logowanie piekło - dlaczego dwa różne formaty wychodzi?

handlers = java.util.logging.ConsoleHandler 

org.apache.catalina.core=OFF 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 
java.util.logging.SimpleFormatter.format=JUL %4$s: %2$s%n%4$s: %5$s%n 

ja również napotykają ten sam problem na serwerze Linux z tej konfiguracji:

handlers = 2localhost.org.apache.juli.FileHandler, org.apache.juli.FileHandler 

.handlers = org.apache.juli.FileHandler 

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

org.apache.juli.FileHandler.level = ALL 
org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter 
org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
java.util.logging.SimpleFormatter.format=tomcat: %4$s: %2$s%n%4$s: %5$s%n 

org.apache.catalina.handlers = org.apache.juli.FileHandler 
org.apache.catalina.startup.level = SEVERE 
org.apache.catalina.session.ManagerBase.level = SEVERE 
org.apache.catalina.core.AprLifecycleListener.level=SEVERE 
org.apache.catalina.connector.level = SEVERE 
org.apache.coyote.level=SEVERE 

org.apache.catalina.level=ALL 
org.apache.catalina.startup.HostConfig.level = SEVERE 
org.apache.catalina.loader.WebappClassLoader.level = SEVERE 
org.apache.catalina.session.ManagerBase.level = INFO 

# ServletContext logger 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = ALL 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].formatter = java.util.logging.SimpleFormatter 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].format=servlet: %4$s: %2$s%n%4$s: %5$s%n 

Dlaczego więc moją konsolę zaloguj się Eclipse wygląda tak?

JUL INFO: org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.8.0_05\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Bitvise SSH Client;C:\Program Files (x86)\MySQL\MySQL Utilities 1.4.3\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.4.3\Doctrine extensions for PHP\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\BaseX\bin;C:\Program Files (x86)\WinMerge;C:\Program Files (x86)\Skype\Phone\;. 
JUL WARNING: org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ctc_web_front_ui' did not find a matching property. 
JUL INFO: org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
JUL INFO: org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
JUL INFO: org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 359 ms 
JUL INFO: org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
JUL INFO: org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 
JUL INFO: org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
JUL INFO: org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'servletSpringDispatcher' 
JUL INFO: org.springframework.web.servlet.FrameworkServlet initServletBean 
INFO: FrameworkServlet 'servletSpringDispatcher': initialization started 

Skąd pochodzą nagie wiadomości INFO?

Dlaczego komunikaty catalina.core wciąż się wyświetlają, mimo że ustawiłem je na WYŁ.?

Na serwerze Linux dziennik JULI wygląda następująco:

tomcat: FINE: org.apache.catalina.core.ContainerBase addChildInternal 
FINE: Add child StandardHost[localhost] StandardEngine[Catalina] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardServer[8005]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [[email protected]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [[email protected]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardService[Catalina]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardEngine[Catalina]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardEngine[Catalina]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [Connector[HTTP/1.1-8080]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [[email protected]] to [INITIALIZING] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [[email protected]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [Connector[HTTP/1.1-8080]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardService[Catalina]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardServer[8005]] to [INITIALIZED] 
tomcat: FINE: org.apache.catalina.util.LifecycleBase setStateInternal 
FINE: Setting state for [StandardServer[8005]] to [STARTING_PREP] 
tomcat: FINE: org.apache.catalina.core.NamingContextListener lifecycleEvent 
FINE: Bound StandardServer[8005] 
tomcat: FINE: org.apache.catalina.core.NamingContextListener createNamingContext 
FINE: Creating JNDI naming context 
tomcat: FINE: org.apache.catalina.core.NamingContextListener addResource 

samo pytanie odnosi się, dlaczego nie wszystkie linie zacząć tomcat:?

UPDATE Podczas debugowania odkryłem, że obie linie każdego wpisu pochodzą z java.util.logging.Logger.logp() enter image description here

Odpowiedz

1

Odpowiedź została wpatrując się nam w twarz, od góry delegowania:

java.util.logging.SimpleFormatter.format=JUL %4$s: %2$s%n%4$s: %5$s%n 
                 ^^^^^^^ 

Dodatkowa %n%4$s: w ciągu formatującym powoduje, że dodatkowa linia pokazuje u str. Duh.

-1

myślę tracisz lip-To- slf4j. Zobacz tutaj, aby uzyskać więcej szczegółów: slf4j legacy bridge documentation

+0

To nie rozwiązuje tego konkretnego problemu. Po zainstalowaniu jul-to-slf4j i skonfigurowaniu mostka, udało mi się przekierować wszystkie wiadomości do logback, ale nadal otrzymuję dwa różne rodzaje wiadomości. –

-1

DOKŁADNA, WSZYSTKIE, INFO, WARN, ERROR, SEVERE, itp. To wszystkie logi poziomu s dla każdego rejestratora. Przestaw je wszystkie na SEVERE, aby uzyskać najmniejszy wynik logu. ALL, jest w zasadzie odpowiednikiem rejestrowania pełnej flagi. FINE jest drugą najwyższą wartością wyjściową dziennika.

+0

Nadal nie odpowiada, dlaczego otrzymuję tajemnicze dodatkowe wiersze dziennika, które nie pasują do ciągu formatu –

+0

czy go wypróbowałeś? – Stephan

0

Wiadomości informacyjne, o których mówisz, nie są częścią rdzenia. Są generowane przez klasy w różnych pakietach. Przez krajanie bibliotekami Catalina i identyfikacji klas odpowiedzialnych za poszczególne dzienniki, tutaj jest konfiguracja, która zapobiega dzienniki tomcat 7.0.63, dołączając do domyślnych logging.properties:

org.apache.catalina.startup.level=OFF 
org.apache.catalina.startup.handlers=1catalina.org.apache.juli.FileHandler.level 

org.apache.catalina.core.level=OFF 
org.apache.catalina.core.handlers=1catalina.org.apache.juli.FileHandler.level 

org.apache.coyote.level=OFF 
org.apache.coyote.handlers=1catalina.org.apache.juli.FileHandler.level 
+1

Zawsze zazdrosny, gdy ktoś znajdzie coś, czego ktoś nie może wymyślić! –

1

Moi logging.properties w Eclipse

  1. Nie wiem, jak skonfigurowany jest twój obszar roboczy. Może ten plik nie jest w ogóle używany.

    Rejestrowanie Java jest konfigurowane przez właściwości systemu.

    Potrzebujesz jednej usługi (-Djava.util.logging.manager), aby skonfigurować org.apache.juli.ClassLoaderLogManager jako implementację menedżera logowania do rejestrowania w języku Java.

    Potrzebujesz innej właściwości (-Djava.util.logging.config.file), aby skonfigurować ścieżkę do pliku konfiguracyjnego.

    Zazwyczaj obie właściwości są ustawiane za pomocą skryptu uruchamiania (catalina.sh, catalina.bat), ale Eclipse uruchamia java bezpośrednio, bez pomocy tego skryptu, więc te właściwości systemu muszą zostać jawnie ustawione w konfiguracji uruchamiania.

    http://tomcat.markmail.org/thread/vpr7mjxmgdvkl3dv

  2. JULI Tomcat obsługuje konfigurację per-classloader rejestrowania.

    Ta funkcja umożliwia skonfigurowanie rejestrowania indywidualnie dla każdej aplikacji internetowej poprzez zapakowanie pliku WEB-INF/classes/logging.properties.

    Jeśli nieoczekiwanie umieściłeś plik logging.properties w ścieżce klas, uzyska ten sam efekt: zastąpi domyślną konfigurację klas załadowanych przez ten moduł ładujący klasy.

    E.g. wiadomo, że pewna wersja biblioteki Jollyday (4 lata temu) zawierała nieoczekiwany plik logging.properties, który włączał rejestrowanie FINE.

    .level = ALL

    https://bz.apache.org/bugzilla/show_bug.cgi?id=52011

+0

To nie odpowiadało na moje pytanie, ale dzięki za rzucenie światła na proces inicjowania tomcat, to wiele wyjaśnia. –