Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
112 lines (84 loc) · 9.7 KB

File metadata and controls

112 lines (84 loc) · 9.7 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

Вопросы для собеседования

Журналирование

Какие существуют типы логов?

  • системы (System);
  • безопасности (Security);
  • приложения (Application, Buisness).

Пользователь входит в приложение, проверяется пароль. Это действие относится к безопасности (Security). Дальше он запускает какой-нибудь модуль. Это событие уровня приложения (Application). Модуль при старте обращается к другому модулю за какими-то дополнительными данными, производит какие-либо еще вызовы – это уже системные действия (System).

к оглавлению

Из каких частей состоит система журналирования log4j?

Система журналирования состоит из трёх основных частей:

  • управляющей журналированием - logger;
  • добавляющей в журнал - appender;
  • определяющей формат добавления - layout.

к оглавлению

Что такое Logger в log4j?

Logger представляет собой объект класса org.apache.log4j.Logger, который используется как управляющий интерфейс для журналирования сообщений с возможностью задавать уровень детализации. Именно logger проверяет нужно ли обрабатывать сообщение и если журналирование необходимо, то сообщение передаётся в appender, если нет - система завершает обработку данного сообщения.

к оглавлению

Что такое Appender в log4j?

Appender - это именованный объект журнала событий, реализующий интерфейс org.apache.log4j.Appender и добавляющий события в журнал. Appender вызывает разные вспомогательные инструменты - компоновщик, фильтр, обработчик ошибок (если они определены и необходимы). В ходе этой работы окончательно устанавливается необходимость записи сообщения, сообщению придаются окончательные содержание и форма.

В log4j журнал может представлять:

  • консоль;
  • файл;
  • сокет;
  • объект класса реализующего java.io.Writer или java.io.OutputStream;
  • JDBC хранилище;
  • тему (topic) JMS;
  • NT Event Log;
  • SMTP;
  • Syslog;
  • Telnet.

Наиболее часто используемые log4j appender-ы:

  • org.apache.log4j.ConsoleAppender - вывод в консоль;
  • org.apache.log4j.FileAppender - добавление в файл;
  • org.apache.log4j.DailyRollingFileAppender - добавление в файл с обновлением файла через заданный промежуток времени;
  • org.apache.log4j.RollingFileAppender - добавление в файл с обновлением файла по достижению определенного размера;
  • org.apache.log4j.varia.ExternallyRolledFileAppender - расширение RollingFileAppender обновляющее файл по команде принятой с заданного порта;
  • org.apache.log4j.net.SMTPAppender - сообщение по SMTP;
  • org.apache.log4j.AsyncAppender - позволяет, используя отдельный поток, организовать асинхронную работу, когда сообщения фиксируются лишь при достижении определенного уровня заполненности промежуточного буфера.
  • org.apache.log4j.nt.NTEventLogAppender - добавление в NT Event Log;
  • org.apache.log4j.net.SyslogAppender - добавление в Syslog;
  • org.apache.log4j.jdbc.JDBCAppender - запись в хранилище JDBC;
  • org.apache.log4j.lf5.LF5Appender - сообщение передаётся в специальный GUI интерфейс LogFactor5
  • org.apache.log4j.net.SocketAppender - трансляция сообщения по указанному адресу и порту;
  • org.apache.log4j.net.SocketHubAppender - рассылка сообщения сразу нескольким удалённым серверам, соединённым по заданному порту;
  • org.apache.log4j.net.TelnetAppender - отсылка сообщения по протоколу Telenet;
  • org.apache.log4j.net.JMSAppender - добавление сообщения в JMS.

к оглавлению

Что такое Layout в log4j?

Layout - наследник класса org.apache.log4j.Layout предоставляющий возможность форматирования сообщения перед добавлением в журнал.

В log4j существуют следующие типы layout-ов:

  • org.apache.log4j.SimpleLayout - на выходе получается строка содержащая лишь уровень вывода и сообщение;
  • org.apache.log4j.HTMLLayout - форматирует сообщение в виде элемента HTML-таблицы;
  • org.apache.log4j.xml.XMLLayout - компонует сообщение в виде XML формате;
  • org.apache.log4j.TTCCLayout - на выходе сообщение дополняется информацией о времени, потоке, имени логгера и вложенном диагностическом контексте;
  • org.apache.log4j.PatternLayout / org.apache.log4j.EnhancedPatternLayout - настройка форматирования сообщения при помощи шаблона заданного пользователем.

к оглавлению

Перечислите уровни журналирования в log4j? Назовите порядок их приоритетности.

  • OFF - отсутствие журналирования;
  • FATAL - фатальная ошибка;
  • ERROR - ошибка;
  • WARN - предупреждение;
  • INFO - информация;
  • DEBUG - детальная информация для отладки;
  • TRACE – трассировка всех сообщений.

Между уровнями логирования установлен следующий порядок приоритетов:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

к оглавлению

Какие существуют способы конфигурирования log4j?

Для того, чтобы log4j начал работать нужно предоставить ему конфигурацию. Это можно сделать несколькими путями:

  • Создать конфигурацию программно, т.е. получить logger, определить уровень журналирования, прикрепить appender и задать способ форматирования.
  • Указать файл или URL как аргумент при запуске java-машины -Dlog4j.configuration=путь/к/файлу/конфигурации, а затем прочитать его в программе при помощи PropertyConfigurator.configure(...)/ DOMConfigurator.configure(...) для формата .properties или XML соответственно.
  • Загрузить конфигурацию из файла в формате XML или .properties: log4j ищет файл конфигурации в classpath. Сначала ищется файл log4j.xml и, если таковой не найден, - файл log4j.properties.

к оглавлению

Источники

Вопросы для собеседования

Morty Proxy This is a proxified and sanitized view of the page, visit original site.