先来一段我们的代码。

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%-15(%d{HH:mm:ss.SSS}) [%t] %-5level %logger{80} [%line] -%msg%n</pattern></layout></appender><appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"><discriminator><key>module</key><defaultValue>module</defaultValue></discriminator><sift><appender name="FILE-${module}" class="ch.qos.logback.core.rolling.RollingFileAppender"><Encoding>UTF-8</Encoding><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${log.root}/${module}/${module}.%d{yyyy-MM-dd}.log</FileNamePattern></rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%-15(%d{HH:mm:ss.SSS}) [%t] %-5level %logger{80} [%line] -%msg%n</pattern></layout></appender></sift></appender><root level="info"><appender-ref ref="STDOUT"/><appender-ref ref="SIFT"/></root><logger name="com.shangyu" level="debug" additivity="true"><appender-ref ref="STDOUT" />
<!--        <appender-ref ref="SIFT" />--></logger>

stdout是打印在控制台。控制台的日志如下:

19:33:04.696    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==>  Preparing: SELECT id,name,age,address,father_name FROM alin_user WHERE id=?
19:33:04.696    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==>  Preparing: SELECT id,name,age,address,father_name FROM alin_user WHERE id=?
19:33:04.729    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==> Parameters: 1(Integer)
19:33:04.729    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==> Parameters: 1(Integer)
19:33:04.759    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -<==      Total: 1
19:33:04.759    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -<==      Total: 1
19:33:04.768    [http-nio-8080-exec-2] INFO  com.shangyu.demo.controller.UserController [35] -info
19:33:04.768    [http-nio-8080-exec-2] INFO  com.shangyu.demo.controller.UserController [35] -info
19:33:04.769    [http-nio-8080-exec-2] ERROR com.shangyu.demo.controller.UserController [36] -error
19:33:04.769    [http-nio-8080-exec-2] ERROR com.shangyu.demo.controller.UserController [36] -error
19:33:04.769    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.controller.UserController [37] -debug
19:33:04.769    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.controller.UserController [37] -debug

SIFT是打印日志到文件,粘一些文件中的日志如下:

19:33:04.696    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==>  Preparing: SELECT id,name,age,address,father_name FROM alin_user WHERE id=?
19:33:04.729    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -==> Parameters: 1(Integer)
19:33:04.759    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.mapper.UserMapper.selectById [143] -<==      Total: 1
19:33:04.768    [http-nio-8080-exec-2] INFO  com.shangyu.demo.controller.UserController [35] -info
19:33:04.769    [http-nio-8080-exec-2] ERROR com.shangyu.demo.controller.UserController [36] -error
19:33:04.769    [http-nio-8080-exec-2] DEBUG com.shangyu.demo.controller.UserController [37] -debug

可以看出,当additivity设为true时,这个logger标签会继承root,也就不止打印自己的日志,还会打印root的日志,打印两遍。所以一般情况下都会设置成false。

logback中additivity的理解相关推荐

  1. logback.xml中additivity的使用

    logback.xml中additivity的使用 1. jar包引入 2. Java代码 3. logback-test.xml 1. jar包引入 <!-- logback --> & ...

  2. javascript中 (function(){})();如何理解?

    javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环 ...

  3. java抽象的理解_Java中抽象类的理解

    Java中抽象类的理解 创建   所有   bsp   抽象类   member   初始   dem   print ---------------------------------------- ...

  4. Java中 多态的理解

    ** Java中 多态的理解 ** 多态官方定义为: 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指 ...

  5. 【转载】谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 转载自: http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallB ...

  6. C++中关键字的理解--Static

    C++中关键字的理解---Static    目录:1.static缘起             2.static自我理解             3.static举例使用             4 ...

  7. Logback中使用TurboFilter实现日志级别等内容的动态修改

    可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢? 所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开 ...

  8. Logback中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现: ch.qos.logback.classi ...

  9. 交互搜索中的自然语言理解技术

    交互搜索 交互搜索是一种新的产品形态,可以和用户对话,记住用户的购物需求和偏好,提供购物知识和建议.在搜索页面下拉就可以进入了,类似于微信的小程序的进入方式. 自然语言理解 对话和搜索的最大区别就是对 ...

最新文章

  1. 中国AI创新者论坛将于3月21日在清华大学举办
  2. SqlServer英文单词全字匹配
  3. 第一次使用MsChart运行提示:ChartImg.axd 执行子请求时出错。
  4. python基础实例-Python基础之字符串常见操作经典实例详解
  5. Confluence 6 使用 Apache 和 mod_proxy 添加 SSL和其他
  6. memcached搭建缓存系统
  7. 贴图问题,opengl,linux,windows,消除锯齿,摩尔纹,yuv 还是 rgb
  8. SQL数据库不用SQL语句能显示全表的内容_Sql性能优化看这一篇就够了
  9. 蓝桥杯 PREV-5历届试题 错误票据
  10. 深度学习TensorFlow生产环境部署(模型部署篇)
  11. Linux学习笔记:wc查看文件字节数、字数、行数
  12. linux shell 数字雨,win10系统怎么利用cmd命令制作数字雨小程序?
  13. 读出我潮流 亚马逊Kindle新品焕彩上市
  14. Python爬虫(一)--爬取猫眼Top100排行
  15. php 交换机 密码,S5100系列交换机使用正确的用户名和密码进行SSH登录时提示错误的解决方法...
  16. android如何编译lame,ndk编译android的lame库
  17. C# 验证码生成照码编程之后
  18. python 基于xgboost预测波士顿房价
  19. HDU 4607 Park Visit HDU暑期多校1
  20. 为什么不建议你用去 “! = null” 做判空?

热门文章

  1. 2021-2027全球与中国草莓制品市场现状及未来发展趋势
  2. $(...)[0].contentWindow.xxx is not a function
  3. 数学真题 2014-2015
  4. RFID技术知识点搜集
  5. sql语句-平均工资-员工工资
  6. 打造Material Design风格的TabBar
  7. linux - 搭建部署ftp服务器
  8. iOS 关闭和开启闪光灯
  9. 基于SSM花卉商城设计与实现
  10. gp数据库游标使用(亲测有效)