JUG.LV What do you know about Logging?

570 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
570
On SlideShare
0
From Embeds
0
Number of Embeds
90
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

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.
  • JUG.LV What do you know about Logging?

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

    ×