Jaka jest różnica między logger.debug
i logger.info
?Różnica między logger.info i logger.debug
Kiedy wydrukowane zostanie logger.debug
?
Jaka jest różnica między logger.debug
i logger.info
?Różnica między logger.info i logger.debug
Kiedy wydrukowane zostanie logger.debug
?
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
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.
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");
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.
Tylko wyjaśnienie o zbiorze wszystkich możliwych poziomach, które są:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
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
Gdzie jest śledzenia? – momomo
@momomo możesz sprawdzić odpowiedź [this] (http://stackoverflow.com/a/5278006/465053), aby dowiedzieć się, jaki jest poziom logowania 'Trace'. – RBT
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