Skip to content

Latest commit

 

History

History
45 lines (38 loc) · 3.94 KB

File metadata and controls

45 lines (38 loc) · 3.94 KB

Задание 01 - Логгер

Создайте класс Logger, который будет логгировать сообщения с различными уровнями важности.

Требования к классу Logger:

  • Каждому экземпляру класса можно задать имя. Имя можно получить, вызвав публичный метод String getName().
  • В классе должен быть публичный статический метод getLogger(String name),
  • возвращающий экземпляр логгера с указанным именем.
  • Повторый вызов с тем же аргументом должен возвращать тот же самый экземпляр,
  • что и при первом вызове. Если продемонстрировать это кодом, то следующий код должен возвращать true:
Logger logger1 = Logger.getLogger("test")
Logger logger2 = Logger.getLogger("test")
return logger1 == logger2
  • Logger должен поддерживать следуюище уровни важности (по возрастанию важности):
    • DEBUG - отладка
    • INFO - информационные сообщения
    • WARNING - предупреждение
    • ERROR - ошибка
  • Сообщения, выводимые логгером должны иметь следующий формат:
[<LEVEL>] <DATE> <TIME> <NAME> - <MESSAGE>

Где:

  • LEVEL - уровень важности сообщения
  • DATE - текущая дата в формате год.месяц.число (например, 2018.07.17)
  • TIME - текущее время в формате часы:минуты:секунды (например, 09:56:32)
  • NAME - имя логгера
  • MESSAGE - текст сообщения

Пример:

[WARNING] 2018.07.17 09:56:32 myLogger - something weird happened
  • Для каждого уровня нужно добавить 2 метода. Название методов должно совпадать с уровнем (в нижнем регистре, например, error). Один метод должен принимать в качестве аргумента строку, которая должна быть выведена на экран в качестве MESSAGE. Второй метод должен принимать первым параметром шаблон сообщения (в любом формате, например java.lang.String.format() или java.text.MessageFormat.format() и любым количеством дополнительных аргументов, которые будут использоваться для форматирования переданной строки.

  • Добавить два метода с названием log, первый из которых принимает на вход два параметра - уровень логгирования и сообщение. Второй - уровень логгирования, шаблон сообщения и любое количество аргументов, которые будут подставлены в шаблон

  • Logger должен поддерживать динамическое задание текущего уровня важности. Сообщение, чей уровень важности ниже установленного не должны печататься в консоль.

    Метод, устанавливающий уровень, должен называться setLevel и принимать на вход один параметр - желаемый уровень важности

    Метод, возвращающий уровень, должен называться getLevel и возвращать текущий уровень.