Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Ведение журнала Java

Ведение журнала Java

В этом руководстве мы узнаем о ведении журнала Java и его различных компонентах с помощью примеров.

Java позволяет нам создавать и сохранять сообщения и файлы журнала в процессе ведения журнала.

В Java для ведения журнала требуются фреймворки и API. Java имеет встроенную структуру ведения журналов в java.util.logging. пакет.

Мы также можем использовать сторонние платформы, такие как Log4j, Logback и многие другие, для ведения журналов.

<час>

Компоненты ведения журналов Java

На рисунке ниже представлены основные компоненты и поток управления Java Logging API (java.util.logging ).

<рисунок>

1. Регистратор

Logger класс предоставляет методы для ведения журнала. Мы можем создавать экземпляры объектов из Logger класс и вызывать его методы для ведения журнала.

Возьмем пример.

Logger logger = Logger.getLogger("newLoggerName");

getLogger() метод Logger класс используется для поиска или создания нового Logger . Строковый аргумент определяет имя регистратора.

Здесь создается новый Logger объект или возвращает существующий Logger с тем же именем.

По соглашению определяется Logger после текущего класса с использованием class.getName() .

Logger logger = Logger.getLogger(MyClass.class.getName());

Примечание. Этот метод выдаст NullPointerException если переданное имя null .

Каждый Logger имеет уровень, который определяет важность сообщения журнала. Существует 7 основных уровней ведения журнала:

Уровень журнала (в порядке убывания) Использовать
СЕРЬЕЗНЫЙ серьезный сбой
ВНИМАНИЕ предупреждающее сообщение, потенциальная проблема
ИНФОРМАЦИЯ общая информация о времени выполнения
КОНФИГУРАЦИЯ информация о конфигурации
ОТЛИЧНО общая информация для разработчиков (отслеживание сообщений)
ФИНЕР подробная информация о разработчике (отслеживание сообщений)
ЛУЧШИЙ очень подробная информация о разработчике (отслеживание сообщений)
ВЫКЛ отключить ведение журнала для всех уровней (ничего не записывать)
ВСЕ включить ведение журнала для всех уровней (записывать все)

Каждый уровень журнала имеет целочисленное значение, определяющее их серьезность, за исключением двух специальных уровней журнала OFF. и ALL .

<час>

Запись сообщения

По умолчанию всегда регистрируются три верхних уровня журнала. Чтобы установить другой уровень, мы можем использовать следующий код:

logger.setLevel(Level.LogLevel);

// example
logger.setLevel(Level.FINE);

В этом примере только уровень FINE и уровни выше него настроены для регистрации. Все другие сообщения журнала удаляются.

Теперь, чтобы записать сообщение, мы используем log() метод.

logger.log(Level.LogLevel, "log message");

// example
logger.log(Level.INFO, "This is INFO log level message");

Существуют сокращенные методы ведения журнала на желаемых уровнях.

logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");

Все запросы журнала, прошедшие установленный уровень журнала, перенаправляются в LogRecord. .

Примечание. Если уровень регистратора установлен на null , его уровень наследуется от родителя и так далее вверх по дереву.

<час>

2. Фильтры

Фильтр (если он присутствует) определяет, будет ли LogRecord должны быть переданы или нет. Как следует из названия, он фильтрует сообщения журнала в соответствии с определенными критериями.

Запись журнала передается от средства ведения журнала к обработчику журнала и от обработчика журнала к внешним системам только в том случае, если он соответствует указанным критериям.

// set a filter
logger.setFilter(filter);

// get a filter
Filter filter = logger.getFilter();
<час>

3. Обработчики (аппендеры)

Обработчик журнала или приложения получают LogRecord и экспортирует его в различные цели.

Java SE предоставляет 5 встроенных обработчиков:

Обработчики Использовать
StreamHandler записывает в OutputStream
ConsoleHandler записывает в консоль
FileHandler записывает в файл
SocketHandler записывает в удаленные порты TCP
MemoryHandler записывает в память

Обработчик может передать LogRecord к фильтру, чтобы снова определить, можно ли его пересылать во внешние системы или нет.

Чтобы добавить новый обработчик, мы используем следующий код:

logger.addHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);

Чтобы удалить обработчик, мы используем следующий код:

logger.removeHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);

Регистратор может иметь несколько обработчиков. Чтобы получить все обработчики, мы используем следующий код:

Handler[] handlers = logger.getHandlers();
<час>

4. Форматтеры

Обработчик также может использовать Formatter. для форматирования LogRecord объект в строку перед его экспортом во внешние системы.

Java SE имеет два встроенных Formatters. :

Форматеры Использовать
SimpleFormatter форматирует LogRecord в строку
XMLFormatter форматирует LogRecord в форму XML

Мы можем использовать следующий код для форматирования обработчика:

// formats to string form
handler.setFormatter(new SimpleFormatter());

// formats to XML form
handler.setFormatter(new XMLFormatter());
<час>

Менеджер журналов

Менеджер журналов объект отслеживает глобальную информацию журнала. Он считывает и поддерживает конфигурацию ведения журнала и экземпляры регистратора.

Диспетчер журналов является одноэлементным, что означает, что создается только один его экземпляр.

Чтобы получить экземпляр диспетчера журналов, мы используем следующий код:

LogManager manager = new LogManager();
<час>

Преимущества ведения журнала

Вот некоторые из преимуществ ведения журнала в Java.


java

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Java-интерфейс
  6. Анонимный класс Java
  7. Java-проба с ресурсами
  8. Java-аннотации
  9. Утверждения Java
  10. Java вектор