2010-02-26 38 views

Odpowiedz

18

To będzie zależeć od konfiguracji logowania. Domyślna wartość będzie zależeć od używanego frameworka. Chodzi o to, że później, zmieniając ustawienie konfiguracji z INFO na DEBUG, zobaczysz mnóstwo więcej (lub mniej, jeśli na odwrót) linii wydrukowanych bez rekompilacji całej aplikacji.

Jeśli myślisz, który z nich użyć, to sprowadza się do myślenia, co chcesz zobaczyć na jakim poziomie. Dla innych poziomów, na przykład w Log4J spójrz na API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html

6

Zasadniczo zależy to od konfiguracji rejestratorów. Zwykle masz dane wyjściowe debugowania wypisane podczas programowania, ale wyłączone podczas produkcji - lub prawdopodobnie mają wybrane kategorie debugowaniapodczas debugowania określonego obszaru.

Istotą różnych priorytetów jest umożliwienie obniżenia/obniżenia poziomu szczegółowości konkretnego komponentu w rozsądnie drobny sposób - i tylko konieczność zmiany konfiguracji rejestrowania (zamiast kodu), aby wyświetlić różnica.

100

Proponuję spojrzeć na artykuł o nazwie "Short Introduction to log4j". Zawiera krótkie objaśnienie poziomów logów i pokazuje, w jaki sposób można je wykorzystać w praktyce. Podstawową ideą poziomów logów jest to, że chcesz móc skonfigurować ilość szczegółów zawartych w dziennikach w zależności od sytuacji. Na przykład, jeśli próbujesz rozwiązać problem, chcesz, aby dzienniki były bardzo szczegółowe. W produkcji możesz chcieć zobaczyć tylko ostrzeżenia i błędy.

Poziom dziennika dla każdego komponentu systemu jest zwykle kontrolowany za pomocą parametru w pliku konfiguracyjnym, więc można go łatwo zmienić. Twój kod zawierałby różne instrukcje rejestrowania na różnych poziomach. Gdy odpowiadasz na Exception, możesz zadzwonić pod numer Logger.error. Jeśli chcesz wydrukować wartość zmiennej w dowolnym punkcie, możesz zadzwonić pod numer Logger.debug. Ta kombinacja konfigurowalnego poziomu rejestrowania i instrukcji rejestrowania w ramach programu pozwala na pełną kontrolę nad tym, jak aplikacja zarejestruje swoją aktywność.

W przypadku log4j przynajmniej kolejność poziomów dziennika to:

DEBUG < INFO < WARN < ERROR < FATAL 

Oto krótki przykład z tego artykułu wykazanie, jak działają poziomy dziennika.

// get a logger instance named "com.foo" 
    Logger logger = Logger.getLogger("com.foo"); 

    // Now set its level. Normally you do not need to set the 
    // level of a logger programmatically. This is usually done 
    // in configuration files. 
    logger.setLevel(Level.INFO); 

    Logger barlogger = Logger.getLogger("com.foo.Bar"); 

    // This request is enabled, because WARN >= INFO. 
    logger.warn("Low fuel level."); 

    // This request is disabled, because DEBUG < INFO. 
    logger.debug("Starting search for nearest gas station."); 

    // The logger instance barlogger, named "com.foo.Bar", 
    // will inherit its level from the logger named 
    // "com.foo" Thus, the following request is enabled 
    // because INFO >= INFO. 
    barlogger.info("Located nearest gas station."); 

    // This request is disabled, because DEBUG < INFO. 
    barlogger.debug("Exiting gas station search"); 
+0

Gdzie jest śledzenia? – momomo

+0

@momomo możesz sprawdzić odpowiedź [this] (http://stackoverflow.com/a/5278006/465053), aby dowiedzieć się, jaki jest poziom logowania 'Trace'. – RBT

+0

Twój przykład 'Jeśli chcesz wydrukować wartość zmiennej w dowolnym punkcie, możesz wywołać Logger.debug' pomógł mi wyjaśnić zamieszanie, które miałem pomiędzy' Debugowaniem' i 'Trace'. Dziękuję Ci! – RBT

0

Jaka jest różnica między logger.debug i logger.info?

To tylko niektóre poziomy domyślne już zdefiniowane. Możesz zdefiniować własne poziomy, jeśli chcesz. Celem tych poziomów jest włączenie/wyłączenie jednego lub więcej z nich, bez wprowadzania zmian w kodzie.

Kiedy zostanie wyświetlony komunikat logger.debug?

Po włączeniu debugowania lub wyższego poziomu w konfiguracji.

7

Tylko wyjaśnienie o zbiorze wszystkich możliwych poziomach, które są:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 
0

To zależy od tego, jaki poziom wybrany w pliku konfiguracyjnym log4j.

<Loggers> 
     <Root level="info"> 
     ... 

Jeśli poziom jest "info" (domyślnie), logger.debug(...) nie zostaną wydrukowane w konsoli. Jednakże, jeśli twój poziom to "debugowanie", będzie.

zależności od poziomu krytyczności kodzie, należy użyć najbardziej dokładny poziom wśród następujących:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF