crcgio 2015-04-14 05:26 采纳率: 0%
浏览 3073

关于logback如何按等级输出到控制台和保存到日志文件

我现在这个项目要把log4j转成用logback,之前在log4j中的分级方法是好用的,结果在写logback的demo测试中不好用了,望大神给看看,下面是配置文件的源码

 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>   
 <appender name="D" 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>         
 <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>       
 </encoder>   
 </appender>   
 <root level="INFO">      
 <appender-ref ref="D"/>   
 </root>  <!-- 这个地方的级别为什么控制步了,控制台的打印结果显示的是下面warn级别 以上的了--> 
 <appender name="E" class="ch.qos.logback.core.rolling.RollingFileAppender">       
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">          
 <fileNamePattern>f://logFile.%d{yyyy-MM-dd}.log</fileNamePattern>          <maxHistory>1</maxHistory> 
 </rollingPolicy>        
 <encoder>         
 <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>       
 </encoder>     
 </appender>      
 <root level="WARN">       
 <appender-ref ref="E" />    
 </root>    </configuration>   

就是控制日志输出方式,info以上的打印到控制台,warn以上的既打印到控制台,又声称日志文件,现在的输出结果是控制台只显示warn和error的结果,日志打印结果也是

  • 写回答

1条回答 默认 最新

  • 九州浪子 2015-04-21 01:42
    关注

    我只配一个root

      <root level="info">
        <appender-ref ref="stdout" />
        <appender-ref ref="file-all" />
        <appender-ref ref="file—debug" />
        <appender-ref ref="file—error" />
      </root>
    
    

    stdout是控制台

      <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8" class="com.yunda.dp.dpsoa.log.LogBackExEncoder">
          <pattern>[DPSOA] %date [%T] %-5level (%logger{80}.%method:%line - %msg%n</pattern>
        </encoder>
      </appender>
    
    
      <!-- 时间滚动输出 level不为 DEBUG 日志 -->
      <appender name="file-all" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>dpsoa.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>DEBUG</level>
          <onMatch>DENY</onMatch>
          <onMismatch>ACCEPT</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          <FileNamePattern>${webApp.root}/logs/dpsoa.%d{yyyy-MM-dd}.log</FileNamePattern>
          <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="com.yunda.dp.dpsoa.log.LogBackExEncoder"> 
          <pattern>[DPSOA] %date [%T] %-5level (%logger{80}.%method:%line - %msg%n</pattern>
        </encoder>
      </appender>
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料