Создайте класс 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и возвращать текущий уровень.