Logback配置

什么是LogBack?

    Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

如何配置LogBack?

     在Source floder 下新建 xml文件 名为logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
   <!-- 定义参数常量 -->
   <!-- TRACE<DEBUG<INFO<WARN<ERROR -->
   <!-- logger.trace("msg) logger.debug -->
   <property name="log.level" value="debug"/>
   <property name="log.maxHistory" value="30"/>
   <property name="log.filePath" value="${catalina.base}/logs/webapps"/>
   <property name="log.pattern" 
       value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level%logger{50}-%msg%n"/>
   <!-- 控制台设置 -->
   <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
        <pattern>${log.pattern}</pattern>
     </encoder> 
   </appender>
   <!-- DEBUG -->
   <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 文件路径 -->
     <file>${log.filePath}/debug.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <!-- 文件名称 -->
       <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
       <!-- 文件最大保存数量 -->
       <maxHistory>${log.maxHistory}</maxHistory>
     </rollingPolicy>
     <encoder>
        <pattern>${log.pattern}</pattern>
     </encoder> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter">
       <level>DEBUG</level>
       <onMatch>ACCEPT</onMatch>
       <onMismatch>DENY</onMismatch>
     </filter>
   </appender>
   <!-- INFO -->
   <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 文件路径 -->
     <file>${log.filePath}/info.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <!-- 文件名称 -->
       <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
       <!-- 文件最大保存数量 -->
       <maxHistory>${log.maxHistory}</maxHistory>
     </rollingPolicy>
     <encoder>
        <pattern>${log.pattern}</pattern>
     </encoder> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter">
       <level>INFO</level>
       <onMatch>ACCEPT</onMatch>
       <onMismatch>DENY</onMismatch>
     </filter>
   </appender>
   <!-- ERROR-->
   <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
     <!-- 文件路径 -->
     <file>${log.filePath}/error.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <!-- 文件名称 -->
       <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
       <!-- 文件最大保存数量 -->
       <maxHistory>${log.maxHistory}</maxHistory>
     </rollingPolicy>
     <encoder>
        <pattern>${log.pattern}</pattern>
     </encoder> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter">
       <level>ERROR</level>
       <onMatch>ACCEPT</onMatch>
       <onMismatch>DENY</onMismatch>
     </filter>
   </appender>
   <logger name="项目包路径 eg:com.black.YeJing" level="${log.level}" additivity="true">
     <appender-ref ref="debugAppender"/>
     <appender-ref ref="infoAppender"/>
     <appender-ref ref="errorAppender"/>
   </logger> 
   <root level="info">
     <appender-ref ref="consoleAppender"/>
   </root>
</configuration>

    如何使用Logback?

package com.imooc.o2o.web.superadmin;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.imooc.o2o.entity.Area;
import com.imooc.o2o.service.AreaService;

@Controller
@RequestMapping("/superadmin")
public class AreaController {
   Logger logger=LoggerFactory.getLogger(AreaController.class); //创建Logger
   @Autowired
   private AreaService areaService;
   
   @RequestMapping(value="/listarea",method=RequestMethod.GET)
   @ResponseBody
   private Map<String,Object> listArea()
   {   
	   logger.info("=====start====");  //logger的开始信息
	   long startTime=System.currentTimeMillis(); //记录开始时间
	   Map<String,Object> modelMap=new HashMap<String,Object>();
	   List<Area> list=new ArrayList<Area>();
	   try {
		   list=areaService.getAreaList();
		   modelMap.put("rows", list);
		   modelMap.put("total", list.size());
	   }catch (Exception e) {
	   e.printStackTrace();
	   modelMap.put("success", false);
	   modelMap.put("errMsg", e.toString());
	}
	   logger.error("test error!");   //logger.error
	   long endTime=System.currentTimeMillis();  //记录最后时间
	   logger.debug("costTime:[{}ms]",endTime-startTime);  //logger的调试
	   logger.info("=====end====");   //logger的结束信息
	   return modelMap;
   }
}

     如何查看logger记录的信息?

       ①启动Tomcat服务器,在控制台中找到"CATALINA_BASE"的信息,会出现logback的日志保存地址

       eg:   信息: CATALINA_BASE:         D:\学习\EEeclpise\.metadata\.plugins\org.eclipse.wst.server.core\tmp1

       ②进入地址查看logger信息

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值