Рубрики
Без рубрики

Как отключить вход в консоль при весенней загрузке

Узнайте, как настроить приложение Spring Boot таким образом, чтобы оно не входило в консоль, независимо от того, использует ли оно Logback, Log4j2 или ведение журнала Java Util.

Автор оригинала: Ger Roza.

1. Обзор

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

В этом кратком руководстве мы увидим, как избежать входа в консоль при запуске приложения Spring Boot .

Мы будем делать это просто с примерами, показывающими, как этого достичь, независимо от того, используем ли мы Logback, Log4js2 или даже платформу ведения журнала Java Util.

Чтобы узнать больше о фреймворках ведения журнала для Spring Boot, мы предлагаем ознакомиться с нашим руководством по ведению журнала в Spring Boot.

2. Как отключить вывод консоли для обратного входа

Если наш проект использует Spring Boot starters , то также будет включена зависимость spring-boot-starter-logging .

Этот конкретный стартер настраивает Logback в качестве фреймворка по умолчанию и изначально регистрируется только в консоли по умолчанию.

Эту конфигурацию можно настроить, добавив logback-spring.xml файл на наши ресурсы.

Например, давайте настроим XML таким образом, чтобы отключить вывод консоли и войти только в файл:



    
    
    
        
    

Кроме того, нам понадобится протоколирование .файл свойство конфигурации в нашем application.properties файле:

logging.file=baeldung-disabled-console.log

Примечание: что на самом деле отключает вывод консоли здесь, так это тот факт, что мы не включаем console-appender.xml в нашем XML-файле , поэтому пустой тег конфигурации также сделает свое дело.

В качестве альтернативы, мы можем избежать создания файла XML |, переопределив конфигурацию по умолчанию свойствами приложения .

Например, мы потенциально можем использовать свойство logging.pattern.console :

logging.pattern.console=

Это свойство преобразуется в свойство CONSOLE_LOG_PATTERN system, которое затем используется конфигурацией консоли Spring по умолчанию.

Этот подход, конечно, не так чист и надежен, как предыдущий . Это не является целевым назначением свойства, поэтому этот “взлом” может не поддерживаться логбэком в какой-то момент.

Кроме того, мы можем отключить все действия по ведению журнала, установив значение уровня корневого регистратора в ВЫКЛ :

logging.level.root=OFF

3. Как избежать входа в консоль с помощью Log4j2

Как мы, возможно, знаем, Log4j2 поддерживает форматы XML, JSON, YAML или свойства для настройки поведения ведения журнала.

Для простоты мы просто покажем простой пример log4j2.xml на этот раз файл.

Другие форматы соблюдают ту же структуру конфигурации:


    
        
        
        
    
    
        
            
        
    

Как и в случае с настройкой обратного входа, причина, по которой фреймворк избегает входа в консоль, заключается не в конфигурации “как таковой”, а в том факте, что Корневой регистратор не содержит ссылки на приложение консоли.

4. Как отключить ведение журнала консоли для ведения журнала Java Util

Ведение журнала Java Util (или просто “JUL”) может быть не самым популярным решением для ведения журнала для приложений Spring Boot в настоящее время.

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

Все, что нам нужно сделать, это добавить следующие значения по умолчанию logging.properties в нашу папку ресурсов:

handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=baeldung.log
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

И включите ведение журнала.файл свойство в нашем приложении.свойства файл. Любое значение сделает свое дело:

logging.file=true

5. Заключение

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

Как всегда, мы можем найти реализации примеров в нашем репозитории Github .