@artemfisher

Как должен выглядеть класс для java.util.logging.config.class?

Добрый день!
В системном свойстве java.util.logging.config.class можно указать имя класса, в котором будут указаны настройки логгирования. Нигде не могу найти как должен выглядеть этот класс.
Может кто-нибудь привести пример?
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zaralX
Я человек, я упал с луны.
Чтобы использовать собственный класс для настройки логирования, через системное свойство `java.util.logging.config.class` можно указать имя класса, который будет выполнять конфигурацию логгера. Этот класс должен быть загружен JVM при запуске, и он должен настраивать логирование в своём конструкторе или статическом блоке.

import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class CustomLoggingConfig {
    
    public CustomLoggingConfig() throws Exception {
        // Настройка уровня логирования
        Logger rootLogger = Logger.getLogger("");
        rootLogger.setLevel(Level.INFO);  // Устанавливаем уровень логирования

        // Удаляем существующие обработчики, если они есть
        for (var handler : rootLogger.getHandlers()) {
            rootLogger.removeHandler(handler);
        }

        // Добавляем консольный обработчик
        ConsoleHandler consoleHandler = new ConsoleHandler();
        consoleHandler.setLevel(Level.INFO);
        consoleHandler.setFormatter(new SimpleFormatter());
        rootLogger.addHandler(consoleHandler);

        // Добавляем обработчик для логирования в файл
        FileHandler fileHandler = new FileHandler("app.log");
        fileHandler.setLevel(Level.FINE);
        fileHandler.setFormatter(new SimpleFormatter());
        rootLogger.addHandler(fileHandler);

        // Устанавливаем уровень логирования для конкретного логера
        Logger specificLogger = Logger.getLogger("com.example.myapp");
        specificLogger.setLevel(Level.FINE);
    }
}


Для указания JVM на этот класс используй
java -Djava.util.logging.config.class=CustomLoggingConfig -cp . YourMainClass
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы