JUG.LV What do you know about Logging?

Preview:

DESCRIPTION

 

Citation preview

What do you What do you know about know about

Logging?Logging?

Кто я Кто я

Denis Udod Java developer

Кто я Кто я

Denis Udod Java developer

С Java c 1998г.

О чем я хочу рассказать?О чем я хочу рассказать?

От System.out.println(“log”);

До log.error(“Error {}”, code);

Что плохо и как хорошо.

Зачем нам Зачем нам logging?logging?

Каждый видит свой logging

Зачем нам Зачем нам logging?logging?

Каждый видит свой logging

Программист – а как работает мой код

Зачем нам Зачем нам logging?logging?

Каждый видит свой logging

Администратор – как решить проблему?

Зачем нам Зачем нам logging?logging?

Каждый видит свой logging

Через тернии к ...Через тернии к ...

История о том как принять “неудачный” стандарт и породить кошмар.

НачалоНачало

Давным давно...

НачалоНачало

Напечатать строку на консоль/файл.

НачалоНачало

Напечатать строку на консоль/файл.

1999 - Log4J

Версия: 1.2.17 ( May 2012 ) 1.2.x начался в 2004 До версии 1.2.8 совместим с Java 1.1

1999 - Log4J Что нового ?

Loggers (aka Category)

Appenders

Layout

1999 - Log4J Что нового ?

Loggers (aka Category) Appenders Layout

Иерархию category/logger 1 logger – n appenders конфигурируемый layout Уровни

TRACE, DEBUG, INFO, WARN, ERROR ,FATAL, OFF

1999 - Log4J

Итак, что мы получили? удачная архитектура понятная система конфигурирования оптимизироан по скорости понятные и достаточные уровни логирования … хорошее сообщество

1999 - Log4J

Хороший кандидат на включение в стандартный API Java.

1999 - Log4J

Java Logging API / JUL /

Мы не ищем

легких путей.

Java Logging API / JUL/ А в чем разница?

Handler

Formatter

Java Logging API / JUL/

Очень похоже на Log4J

Loggers (aka Category) Appenders Layout

Java Logging API / JUL/ Handler

5 ШТУК Formatter

бледнеько

Уровни ?

Java Logging API / JUL/ Handler Formatter

УровниSEVERE WARNINGINFOCONFIGFINEFINERFINEST

Java Logging API / JUL/ Уровни

SEVERE WARNINGINFOCONFIG

FINEFINERFINEST

1999 - Log4J Java Logging API / JUL / А что нам использовать ?

1999 - Log4J Java Logging API / JUL / 2002 – Jakarta Commons Logging

Мы думали думали и …

на конец придумали.

1999 - Log4J Java Logging API / JUL / 2002 – Jakarta Commons Logging

ClassLoader Hell

Итак, что мы имеем Итак, что мы имеем

Стабильный и функционально log4jзастрявший в java 1.3

Унылый java.util.logging Проблемный commons-logging

Итак, что мы имеем Итак, что мы имеем

Стабильный и функционально log4jзастрявший в java 1.3

Унылый java.util.logging Проблемный commons-logging

SLF4JSLF4J

2004г. Simple Logging Facade For Java

Wrapper for Wreppers

SLF4JSLF4J

Чем лучше? «Переходники»

Log4j -> slf4j / log4j-over-slf4j.jar JUL -> slf4j / jul-to-slf4j.jar JCL -> slf4j / jcl-over-slf4j.jar

SLF4JSLF4J

Чем лучше? А куда пишем?

slf4j -> Log4j / slf4j-log4j.jar slf4j -> JUL / slf4j-jdk14.jar slf4j / logback / locback.jar

Где мы сейчасГде мы сейчас

log4j JUL commons-logging SLF4J Logback

Как «скрутить» Как «скрутить» loggerlogger

Выбираем “правильный” logger Log4j Jul Logback

Удаляем все остальные API Заменяем их соответствующими

переходниками

Что такое хорошо,Что такое хорошо,что такое плохочто такое плохо

Идиальный logging

System.out / System.err

System.out / System.err

System.out / System.err

«Ковровое бомбометание»

«Ковровое бомбометание»

«Ковровое бомбометание»

«Тупая работа»

«Тупая работа»

Имя?

Имя?

Имя?

Имя?

Вывод в консоль ?

Чем меньше тем лучше

Context ? slf4j –Mappet Diagnostic Context

Что и где ?Что и где ?

http://logging.apache.org/log4j/1.2/

http://www.slf4j.org/manual.html

http://logback.qos.ch/manual/http://www.parleys.com/#st=5&id=1701&sl=27

Вопросы ?Вопросы ?

Recommended