1. 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来访问日志的功能。

2. maven依赖

  1. <!-- logback+slf4j -->
  2. <dependency>
  3. <groupId>org.slf4j</groupId>
  4. <artifactId>slf4j-api</artifactId>
  5. <version>1.6.0</version>
  6. <type>jar</type>
  7. <scope>compile</scope>
  8. </dependency>
  9. <dependency>
  10. <groupId>ch.qos.logback</groupId>
  11. <artifactId>logback-core</artifactId>
  12. <version>0.9.28</version>
  13. <type>jar</type>
  14. </dependency>
  15. <dependency>
  16. <groupId>ch.qos.logback</groupId>
  17. <artifactId>logback-classic</artifactId>
  18. <version>0.9.28</version>
  19. <type>jar</type>
  20. </dependency>

如果你没有使用maven,那么你自己去下载jar包吧...

3. 配置和使用

1. 日志使用

我们使用org.slf4j.LoggerFactory,就可以直接使用日志了。

  1. protected final Logger       logger = LoggerFactory.getLogger(this.getClass());

使用:

  1. @Controller
  2. @RequestMapping(value = "")
  3. public class IndexController extends BaseController {
  4. /**
  5. * Success
  6. * @param response
  7. * @throws IOException
  8. */
  9. @RequestMapping(value = "")
  10. @ResponseBody
  11. public void hello(HttpServletResponse response) throws IOException {
  12. logger.debug("DEBUG TEST 这个地方输出DEBUG级别的日志");
  13. logger.info("INFO test 这个地方输出INFO级别的日志");
  14. logger.error("ERROR test 这个地方输出ERROR级别的日志");
  15. }
  16. }

2. 在控制台输出特定级别的日志

logback的配置文件都放在/src/main/resource/文件夹下的logback.xml文件中。其中logback.xml文件就是logback的配置文件。只要将这个文件放置好了之后,系统会自动找到这个配置文件。

下面的配置中,我们输出特定的ERROR级别的日志:

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
  4. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  5. <encoder>
  6. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  7. </encoder>
  8. </appender>
  9. <!-- 日志级别 -->
  10. <root>
  11. <level value="error" />
  12. <appender-ref ref="console" />
  13. </root>
  14. </configuration>

结果只在控制台输出ERROR级别的日志。

3. 设置输出多个级别的日志

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
  4. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  5. <encoder>
  6. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  7. </encoder>
  8. </appender>
  9. <!-- 日志级别 -->
  10. <root>
  11. <level value="error" />
  12. <level value="info" />
  13. <appender-ref ref="console" />
  14. </root>
  15. </configuration>

设置两个level,则可以输出 ERROR和INFO级别的日志了。

4. 设置文件日志

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
  4. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  5. <encoder>
  6. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
  7. </pattern>
  8. </encoder>
  9. </appender>
  10. <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 -->
  11. <appender name="file"
  12. class="ch.qos.logback.core.rolling.RollingFileAppender">
  13. <Encoding>UTF-8</Encoding>
  14. <File>/home/test.log</File>
  15. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  16. <FileNamePattern>/home/test-%d{yyyy-MM-dd}.log
  17. </FileNamePattern>
  18. <MaxHistory>10</MaxHistory>
  19. <TimeBasedFileNamingAndTriggeringPolicy
  20. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  21. <MaxFileSize>5MB</MaxFileSize>
  22. </TimeBasedFileNamingAndTriggeringPolicy>
  23. </rollingPolicy>
  24. <layout class="ch.qos.logback.classic.PatternLayout">
  25. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
  26. </pattern>
  27. </layout>
  28. </appender>
  29. <!-- 日志级别 -->
  30. <root>
  31. <!-- 定义了ERROR和INFO级别的日志,分别在FILE文件和控制台输出 -->
  32. <level value="error" />
  33. <level value="info" />
  34. <appender-ref ref="file" />
  35. <appender-ref ref="console" />
  36. </root>
  37. </configuration>

5. 精确设置每个包下面的日志

  1. <logger name="com.xxx" additivity="false">
  2. <level value="info" />
  3. <appender-ref ref="file" />
  4. <appender-ref ref="console" />
  5. </logger>

maven如何配置的更多相关文章

  1. 国内可用maven repository 配置

    国内可用maven repository 配置 发表于2016/1/4 23:08:04  10235人阅读 分类: maven 鉴于一些原因,从maven中央仓库download依赖包时,被各种折磨 ...

  2. MyEclipse中Maven的配置

    之前在MyEclipse这个IDE中配置Maven,完成配置后启动Maven时出现-Dmaven.multiModuleProjectDirectory system propery is not s ...

  3. maven的安装,maven库配置和Eclipse插件的安装

    maven的安装,maven库配置和Eclipse插件的安装 1.下载并解压maven 2.配置环境变量 3.配置maven配置文件 1.下载链接 Downloading Apache Maven 2 ...

  4. Eclipse下Maven插件配置

    要做一个基于C/S架构的汽车租赁系统,由于在实习期间接触过一些Java和SpringMVC,Spring,Hibernate的东西,所以决定使用这个框架组合来完成这个项目. 首先是Maven的配置,为 ...

  5. maven打包配置

    maven打包配置,到底要打包哪些文件,如何配置?? <build> <finalName>weatherAdminSys</finalName> <plug ...

  6. 开发流程和Maven的配置

    按照何种开发模型? V模型:项目需求--->概要设计(功能模块) --->详细设计(页面的设计,数据库的设计) --->编码(框架的搭建,功能的实现)---->测试(单元测试, ...

  7. Eclipse中Maven的配置

    Maven 的配置 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven 1.2 配置 Maven 的c ...

  8. 【maven教程】(1)---maven环境配置

    maven环境配置 刚开始学习maven,现在项目需要用到maven,而且他确实很好用,也比较容易上手,我也是主要通过视频学习,在写博客的时候也会总结其它人所写 博客,从简到难,如果你也是初学者那接下 ...

  9. Eclipse上Maven环境配置使用 (全)

    Eclipse上Maven环境配置使用 (全) 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven. ...

  10. Maven 环境配置

    1. 解压maven 2. 配置MAVEN_HOME环境变量 MAVEN_HOME   D:\maven\apache-maven-3.0.5-bin\apache-maven-3.0.5 path  ...

随机推荐

  1. 原创 C++应用程序在Windows下的编译、链接(四)动态链接

    4动态链接 4.1概述 在静态链接阶段,链接器为PE文件生成了导入表,导出表,符号表,并调整了Call指令后面的操作数,在程序调用的时候,能够直接地或者间接地定位到IAT中的某个位置,在PE文件中,该 ...

  2. 由用友NC刷新功能得到启示

    在做NC刷新界面数据的功能,就是 点刷新按钮然后刷新当前 list 中的数据,犯了一个错误. 我之前的做法是记录每次查询数据的sql条件语句,然后在点刷新的时候去调用这个条件语句,哈哈,错误就在这个逻 ...

  3. github的使用

    1.gitbub概念 github是一个基于git的代码托管平台,付费用户可以建私人仓库,免费用户用公共仓库,但是代码公开. 2.注册账户以及创建仓库 在github官网地址:https://gith ...

  4. Vim Using

    1 2 set nu 3 set backup 4 set bg=light 5 " transform tab to space 6 set expandtab 7 " auto ...

  5. Java监听器

    监听器 1.概念 监听器:主要是用来监听特定对象的创建,属性的变化的!,本质上却是一个实现特定接口的普通java类! 对象分为自己创建自己使用的,和别人创建自己用的,自己创建的不需要监听,值需要取监听 ...

  6. Go语言开发第一个Hello,World

    在网上看到go语言的各种评价,也是闻名已久,但是没有自己实践过,也不知道它的好,它的坏,今天就来试试第一个小程序 第一步.如何下载 1)下载go安装程序 下载地址:https://golang.org ...

  7. 8个排序算法——java

    public static void radixsort(int[] a){ int max=a[0]; for(int i=1;i<a.length;i++){ if (max<a[i] ...

  8. html drag api 在firefox 下 拖动出现新窗口的解决办法

    有个功能,需要用drag drop api 来做. 发现在firefox下拖放,会出现新的tab 页签,即使在ondragover.ondrop中使用了event.preventDefault也无济于 ...

  9. 超简单——自己搭建ftp服务器

    自己搭建ftp服务器 之所以没选择serv-u,一是因为收费,虽说网上有破解版,但是使用过程中发现破解版很不稳定,经常异常死掉,随后改选用免费的filezilla. 1软件获取 从百度搜索 FileZ ...

  10. 将 instance 连接到 flat_net - 每天5分钟玩转 OpenStack(88)

    上一节我们创建了 "flat_net",本节将在此网络中部署 instance 并验证连通性. launch 新的 instance “cirros-vm1”,选择网络 falt_ ...