Upload
denis-udod
View
333
Download
7
Embed Size (px)
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
Вопросы ?Вопросы ?