Как отключить ведение журнала консоли в Spring Boot

Как отключить ведение журнала консоли в Spring Boot

1. обзор

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

В этом кратком руководствеwe’ll see how to avoid logging to the console when running a Spring Boot application.

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

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

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

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

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

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

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



    
    
    
        
    

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

logging.file=example-disabled-console.log

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

Alternatively,we can avoid creating the XML file by overriding the default configuration with application properties.

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

logging.pattern.console=

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

This approach, of course, isn’t as clean and solid as the previous one. Это не является предполагаемой целью свойства, поэтому этот «взлом» может не поддерживаться Logback в какой-то момент.

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

logging.level.root=OFF

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

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

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

Другие форматы соответствуют той же структуре конфигурации:


    
        
        
        
    
    
        
            
        
    

Как и в случае с настройкой Logback, причина, по которой платформа избегает ведения журнала в консоли, заключается не в конфигурации «как таковой», а в том, что Root Logger не содержит ссылки на Console Appender.

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

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

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

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

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

И включите свойствоlogging.file в наш s-файлapplication.properties . Любое значение сделает свое дело:

logging.file=true

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

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

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