Java Logback根输出配置

Java Logback根输出配置,java,log4j,logback,Java,Log4j,Logback,我希望看到控制台中的所有信息级别输出,并且只看到文件中的警告输出 控制台上的信息级输出清晰显示,但所有信息输出也保存在文件中,而不仅仅是警告级输出 这是我的logback配置。这里有什么问题吗 <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"&g

我希望看到控制台中的所有信息级别输出,并且只看到文件中的警告输出

控制台上的信息级输出清晰显示,但所有信息输出也保存在文件中,而不仅仅是警告级输出

这是我的logback配置。这里有什么问题吗

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern>
    </encoder>
</appender>

<appender name="consoleFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <prudent>true</prudent>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern>
    </encoder>
</appender>


<root level="INFO">
    <appender-ref ref="console" />
</root>

<root level="WARN">
    <appender-ref ref="consoleFileAppender" />
</root>

%d{HH:mm:ss.SSS}%-5级%logger{20}[%mdc{threadid}]-[%mdc{useroid}:%mdc{sessionid}]%msg%n
真的
日志/控制台。%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:MM:ss.SSS}%-5级|%msg%n

出于您的目的,我建议在appender中使用过滤器。更具体地说,如果您只想查看控制台上的信息,可以在控制台附加程序中添加特定的LevelFilter;如果您想查看所有等于或高于信息的日志,可以使用ThresholdFilter

这里有一个可能的任务解决方案:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch> 
        </filter>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern>
    </encoder>
</appender>

<appender name="FileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <prudent>true</prudent>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>WARN</level>
                    <onMatch>ACCEPT</onMatch>
                    <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="console" />
    <appender-ref ref="FileAppender" />
</root>

信息
接受
否认
%d{HH:mm:ss.SSS}%-5级%logger{20}[%mdc{threadid}]-[%mdc{useroid}:%mdc{sessionid}]%msg%n
真的
警告
接受
否认
日志/控制台。%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:MM:ss.SSS}%-5级|%msg%n

出于您的目的,我建议在appender中使用过滤器。更具体地说,如果您只想查看控制台上的信息,可以在控制台附加程序中添加特定的LevelFilter;如果您想查看所有等于或高于信息的日志,可以使用ThresholdFilter

这里有一个可能的任务解决方案:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch> 
        </filter>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern>
    </encoder>
</appender>

<appender name="FileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <prudent>true</prudent>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>WARN</level>
                    <onMatch>ACCEPT</onMatch>
                    <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="console" />
    <appender-ref ref="FileAppender" />
</root>

信息
接受
否认
%d{HH:mm:ss.SSS}%-5级%logger{20}[%mdc{threadid}]-[%mdc{useroid}:%mdc{sessionid}]%msg%n
真的
警告
接受
否认
日志/控制台。%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:MM:ss.SSS}%-5级|%msg%n

您不能有两个根级别标记您不能有两个根级别标记