2009-07-07 13 views
9

Używam log4j w aplikacji, którą rozwijam, aby ostatecznie uruchomić w Tomcat/JBoss, ale teraz uruchamiam ją od wewnątrz Eclipse. Skonfigurowałem go tak, aby zapisywał do ConsoleAppender przy użyciu pliku log4j.xml i przekazywał go jako właściwość systemową, a wszystkie moje dane wyjściowe dotyczące logowania działają.Eliminowanie zbędnego wyjściowego ustawienia log4j

Problem polega na tym, że log4j wypluwa mnóstwo śmieci rozruchowych/startowych, których naprawdę nie potrzebuję (lub nie chcę) oglądać. Na przykład:

log4j: Retreiving an instance of org.apache.log4j.Logger. 
log4j: Setting [CoherenceMonitor] additivity to [false]. 
log4j: Level value for CoherenceMonitor is [DEBUG]. 
log4j: Desired Level sub-class: [org.apache.log4j.Level] 
log4j: CoherenceMonitor level set to DEBUG 
log4j: Class name: [org.apache.log4j.ConsoleAppender] 
log4j: Setting property [target] to [System.out]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%-5p %m%n]. 
log4j: Adding appender named [console] to category [CoherenceMonitor]. 

uzyskać około 20 wierszy tego za każdym razem uruchomić mój program, a to tylko hałas, który przysłania danych dziennika naprawdę zależy. Co chcę zrobić, to wyłączyć to wyjście (wszystko, co zaczyna się od "log4j:") i uwzględnia tylko dane wyjściowe z moich własnych instrukcji rejestrowania.

Próbowałem wszystkiego, co mogłem znaleźć za pośrednictwem Google i moich współpracowników, w tym ustawianie wartości priorytetu dla kategorii org.apache, jak pokazano poniżej. (Niezależnie od priorytetu I ustawiony, ja wciąż wyjście.)

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

jestem prawie nowicjuszem w konfiguracji log4j, a moja jest dość prosta. Mam tylko jednego aplikanta, jeden program rejestrujący i tę jedną kategorię. Każda pomoc w uzyskaniu log4j, który będzie trzymał język za zębami, podczas gdy to robimy, będzie bardzo doceniany! :-)

Odpowiedz

14

To wygląda jak debugowanie z samego rejestratora. Jeśli korzystasz z konfiguracji XML, wygląda następująco:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

Włącz debugg na wartość false.

+0

Um ... wow. Myślałem, że wszystko sprawdziłem, nie wiem, jak to przegapiłem. Dokładnie to było. Jednak czuję się nieco lepiej wiedząc, że kilku współpracowników zajrzało do mojego log4j.xml i oni też tego nie widzieli. Dzięki! –

+0

Właśnie spędziłem pół dnia na walce z logowaniem - inaczej nigdy bym też nie wiedział :) – javamonkey79

3

Oprócz sprawdzenia, czy log4j.xml posiada atrybut debug="true", a także upewnić się, że nie masz zestawu parametrów systemu log4j.debug (w Eclipse byłoby to pojawiają się w Run konfiguracji jak JVM argument z wartości -Dlog4j.debug).

+0

Również doskonała propozycja. Chociaż mój problem był w log4j.xml, bardzo dobrze jest wiedzieć, gdzie szukać, czy problem miał się zdarzyć tylko w Eclipse. Dzięki! –