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>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序