JUG.LV What do you know about Logging?

  • 245 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
245
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Т.е. о  чем всегда “надо” помнить? Logging это не только “запись” куда либо log-инфомации, но и анализ той информации, кроторую вы записали в log. Т.е. не “мы ЧТО-ТО записываем в лог” Постарайтесь, в первую очередь, что бы у вас было ЧЕТКОЕ понимаение “ЗАЧЕМ мы записываем в log”. Если вы это делаете потому что “вам сказали”, “так принято”, то лучше НЕ ПИШИТЕ В LOG НИЧЕГО, по крайней мере вы не сделаете “ошибок” и ваш код будет лучше выглядеть, проще читаться.
  • Попробую расказать об истории развития Java logging’а, в меру возможности. Почему “…” ну, потому что как говорилось в сказке “ мы  шли шли шли, а что вышло, то вышло”. Вобщем история о том как шли, куда шли и как с этим жить.
  • Давным давно, когда программисты JUG были еще маленькими  Что было нужно для logginga ? Ну, вобщем минимальная “функциональность” для logging’a это ? (варианты)
  • log4j — используют подсевшие на него изначально и не видящие необходимости перехода. JUL — тихо умирающий стандарт. Все, кто изначально пытался его использовать, переезжают на Logback. commons-logging — обычно задействован в legacy-библиотеках, которые очень боятся причинить неудобства пользователем, переехав на что-нибудь получше. SLF4J — очень популярен в библиотеках. Многие переехали на него, не выдержав ужасов commons-logging Logback — обычно современные high-performance серверы, которых не устраивает log4j.

Transcript

  • 1. What do you know about Logging?
  • 2. Кто я   Denis Udod  Java developer  
  • 3. Кто я   Denis Udod  Java developer   С Java c 1998г.
  • 4. О чем я хочу рассказать? От System.out.println(“log”); До log.error(“Error {}”, code); Что плохо и как хорошо.
  • 5. Зачем нам logging? Каждый видит свой logging
  • 6. Зачем нам logging? Каждый видит свой logging Программист – а как работает мой код
  • 7. Зачем нам logging? Каждый видит свой logging Администратор – как решить проблему?
  • 8. Зачем нам logging? Каждый видит свой logging
  • 9. Через тернии к ... История о том как принять “неудачный” стандарт и породить кошмар.
  • 10. Начало Давным давно...
  • 11. Начало Напечатать строку на консоль/файл.
  • 12. Начало Напечатать строку на консоль/файл.
  • 13.  1999 - Log4J  Версия: 1.2.17 ( May 2012 )  1.2.x начался в 2004  До версии 1.2.8 совместим с Java 1.1
  • 14.  1999 - Log4J  Что нового ?  Loggers (aka Category)  Appenders  Layout
  • 15.  1999 - Log4J  Что нового ?  Loggers (aka Category)  Appenders  Layout  Иерархию category/logger  1 logger – n appenders  конфигурируемый layout  Уровни TRACE, DEBUG, INFO, WARN, ERROR ,FATAL, OFF
  • 16.  1999 - Log4J Итак, что мы получили?  удачная архитектура  понятная система конфигурирования  оптимизироан по скорости  понятные и достаточные уровни логирования …  хорошее сообщество
  • 17.  1999 - Log4J Хороший кандидат на включение в стандартный API Java.
  • 18.  1999 - Log4J Java Logging API / JUL / Мы не ищем легких путей.
  • 19.  Java Logging API / JUL/  А в чем разница?  Handler  Formatter
  • 20.  Java Logging API / JUL/  Очень похоже на Log4J  Loggers (aka Category)  Appenders  Layout
  • 21.  Java Logging API / JUL/  Handler 5 ШТУК  Formatter бледнеько  Уровни ?
  • 22.  Java Logging API / JUL/  Handler  Formatter  Уровни SEVERE WARNING INFO CONFIG FINE FINER FINEST
  • 23.  Java Logging API / JUL/  Уровни SEVERE WARNING INFO CONFIG FINE FINER FINEST
  • 24.  1999 - Log4J Java Logging API / JUL / А что нам использовать ?
  • 25.  1999 - Log4J Java Logging API / JUL / 2002 – Jakarta Commons LoggingМы думали думали и …на конец придумали.
  • 26.  1999 - Log4J Java Logging API / JUL / 2002 – Jakarta Commons Logging ClassLoader Hell
  • 27. Итак, что мы имеем Стабильный и функционально log4j застрявший в java 1.3 Унылый java.util.logging Проблемный commons-logging
  • 28. Итак, что мы имеем Стабильный и функционально log4j застрявший в java 1.3 Унылый java.util.logging Проблемный commons-logging
  • 29. SLF4J 2004г. Simple Logging Facade For Java  Wrapper for Wreppers
  • 30. SLF4J Чем лучше?  «Переходники»  Log4j -> slf4j / log4j-over-slf4j.jar  JUL -> slf4j / jul-to-slf4j.jar  JCL -> slf4j / jcl-over-slf4j.jar
  • 31. SLF4J Чем лучше?  А куда пишем?  slf4j -> Log4j / slf4j-log4j.jar  slf4j -> JUL / slf4j-jdk14.jar  slf4j / logback / locback.jar
  • 32. Где мы сейчас log4j JUL commons-logging SLF4J Logback
  • 33. Как «скрутить» logger Выбираем “правильный” logger  Log4j  Jul  Logback Удаляем все остальные API  Заменяем их соответствующими переходниками
  • 34. Что такое хорошо, что такое плохо
  • 35.  Идиальный logging
  • 36.  System.out / System.err
  • 37.  System.out / System.err
  • 38.  System.out / System.err
  • 39.  «Ковровое бомбометание»
  • 40.  «Ковровое бомбометание»
  • 41.  «Ковровое бомбометание»
  • 42.  «Тупая работа»
  • 43.  «Тупая работа»
  • 44.  Имя?
  • 45.  Имя?
  • 46.  Имя?
  • 47.  Имя?
  • 48.  Вывод в консоль ?  Чем меньше тем лучше
  • 49.  Context ?  slf4j –Mappet Diagnostic Context
  • 50. Что и где ?http://logging.apache.org/log4j/1.2/http://www.slf4j.org/manual.htmlhttp://logback.qos.ch/manual/http://www.parleys.com/#st=5&id=1701&sl=27
  • 51. Вопросы ?