Java Logstash同时写入syslog和daemon.log

Java Logstash同时写入syslog和daemon.log,java,logstash,logback,syslog,Java,Logstash,Logback,Syslog,当前我的Java进程同时写入syslog和daemon.log。 几个月前,我在JSON格式中添加了一个并行写入,但我认为这不应该是这里的问题 如何避免同时写入syslog和daemon.log? 这是我的logback-spring.xml: <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springfr

当前我的Java进程同时写入syslog和daemon.log。
几个月前,我在JSON格式中添加了一个并行写入,但我认为这不应该是这里的问题

如何避免同时写入syslog和daemon.log? 这是我的logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<include resource="org/springframework/boot/logging/logback/basic.xml" />
<springProperty scope="context" name="logs" source="logging.path"
    defaultValue="." />

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d [%thread] %-5level %logger{36} - %msg %n
        </pattern>
    </encoder>
</appender>

<appender name="STDOUT"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/app.log</file>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        ...
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder>
        <pattern>%d [%thread] %-5level %logger{36} - %msg%n
        </pattern>
    </encoder>
</appender>

<appender name="STDOUT_JSON"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/app.json.log</file>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        ...
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<appender name="STDERR"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/error.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>WARN</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder>
        <pattern>%d [%thread] %-5level %logger{36} - %msg%n
        </pattern>
    </encoder>
</appender>

<appender name="STDERR_JSON"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/error.json.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>WARN</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<appender name="ProcessLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/process.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder>
        <pattern>%d %-5level %msg%n</pattern>
    </encoder>
</appender>

<appender name="ProcessLogJson" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logs}/process.json.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ...
    </rollingPolicy>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<logger name="ProcessLog" level="INFO">
    <appender-ref ref="ProcessLog" />
    <appender-ref ref="ProcessLogJson" />
</logger>
<logger name="com.base22" level="TRACE" />

<root level="info">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="STDOUT" />
    <appender-ref ref="STDOUT_JSON"/>
    <appender-ref ref="STDERR" />
    <appender-ref ref="STDERR_JSON" />
</root>

%d[%thread]-5级别%logger{36}-%msg%n
${logs}/app.log
...
...
%d[%thread]-5级别%logger{36}-%msg%n
${logs}/app.json.log
...
...
${logs}/error.log
警告
...
%d[%thread]-5级别%logger{36}-%msg%n
${logs}/error.json.log
警告
...
${logs}/process.log
...
%d%-5级%msg%n
${logs}/process.json.log
...
将STDOUT重命名为某个新名称会奏效吗?

所有这些都会转到process.log、error.log。。。也不应出现在syslog中。

我将附加器的名称更改为STDOUT_平面和STDERR_平面:

<appender name="STDOUT_PLANE"
...
<appender name="STDERR_PLANE"
...
<root level="info">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="STDOUT_PLANE" />
    <appender-ref ref="STDOUT_JSON"/>
    <appender-ref ref="STDERR_PLANE" />
    <appender-ref ref="STDERR_JSON" />
</root>