Spring boot: как логировать в файл отдельно от консоли?

В Spring Boot есть несколько способов настройки логирования. Одним из них является использование библиотеки Logback, которая является стандартным решением для логирования в Spring Boot.

Для начала необходимо добавить зависимость на Logback в файле pom.xml:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

Затем, создайте файл logback.xml в директории 'src/main/resources', с содержимым:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/application.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.example" level="DEBUG"/>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

В данном файле созданы два аппендера - один для вывода логов в консоль (STDOUT), а другой для записи логов в файл (FILE). Вам может понадобиться изменить путь и имя файла (logs/application.log) в зависимости от ваших требований.

Затем, в самом приложении, необходимо настроить использование Logback. Для этого в файле application.properties добавьте следующую строку:

logging.config=classpath:logback.xml

Теперь все логи будут выводиться одновременно в консоль и в указанный файл. Если вы хотите записывать логи только в файл без вывода в консоль, удалите '<appender-ref ref="STDOUT"/>' из секции <root>.

Также в файле logback.xml можно настроить дополнительные параметры логирования, такие как уровни логов, формат вывода, ротация файлов, и т.д. Подробную информацию о возможностях конфигурации можно найти в документации Logback: http://logback.qos.ch/documentation.html