Как задать кодировку для логгера org.slf4j в файле application.yml?

Почему в логах выводится кириллица с искажениями ("кракозябрами")? Привожу часть конфигурации из application.yml: 

```yaml
logging:
  file:
    name: "log/${service.name}.log"
```
  • 17 января 2025 г. 9:53
Ответы на вопрос 1
Проблема с искажением кириллицы ("кракозябры") в логах обычно связана с тем, что кодировка выходного файла не настроена правильно. В Spring Boot, когда вы используете `logging.file.name` для указания файла логов, система по умолчанию может использовать кодировку ISO-8859-1, которая не поддерживает кириллицу.

Для исправления этой проблемы можно задать кодировку через параметр `logging.file.encoding`. Вам нужно добавить его в вашу конфигурацию `application.yml`. Вот пример, как это можно сделать:

```yaml
logging:
  file:
    name: "log/${service.name}.log"
  file:
    encoding: "UTF-8"
```

При этом также можно использовать следующую часть:

```yaml
logging:
  level:
    root: INFO
  pattern:
    console: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'
  file:
    name: "log/${service.name}.log"
    encoding: "UTF-8"
```

Здесь мы добавили параметр `encoding` и указали кодировку `UTF-8`, которая поддерживает кириллицу.

Также убедитесь, что в вашей системе (операционной системе, текстовом редакторе и т.д.) файл логов открывается с поддержкой UTF-8, чтобы избежать искажений при просмотре логов.
Похожие вопросы