У меня возникают проблемы с использованием Logback с logstash-logback-encoder.
Мой logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stash" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<file>logs/development.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/development.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="all">
<appender-ref ref="stash" />
</root>
</configuration>
Я попытался создать logs/development в моем доме проекта:
По какой-то причине он не будет записывать в файл журнала.
Я попытался добавить:
input {
file {
path => "logs/development.log"
codec => "json"
}
}
Но я не знаю, где добавить это в свой проект, чтобы logStash его узнал.
Ведение журнала работает, если я удалю файл "logback.xml", поэтому ведение журнала происходит фактически, но оно не сохраняется в файле.
Очень маловероятно, что logback любезно зарегистрируется в src/main/resources/logs/development.log
Вы должны скорее попытаться выяснить, не создан ли другой файл development.log
другом месте вашего проекта (например, в целевом приложении, или если вы запустите проект в другую среду, такую как сервер tomcat, найдите каталог развертывания)
После того, как вы подтвердите, какой файл на самом деле получает журналы, вы можете попытаться настроить logstash, который вы должны запускать как отдельную программу. Как следствие, конфигурация для logstash не имеет места в вашем проекте. Или, может быть, вы можете запустить его в отдельном проекте, но это странно. Я лично всегда запускаю его непосредственно из командной строки.
Надеюсь это поможет