log4j中logger标签中additivity属性的用法说明

目录
  • log4j logger标签中additivity属性
  • log4j.additivity用法和例子

log4j logger标签中additivity属性

将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中。

可以达到以logger中配置的appender方式来输出日志而其他地方输出的目的,看配置:

< appender  name = "DEMO"  class = "com.XXXXX.RollingFileAppender" >
     < param  name = "file"  value = "${loggingRoot}/xxx.log"  />
     < param  name = "append"  value = "true"  />
     < param  name = "encoding"  value = "GB2312"  />
     < param  name = "threshold"  value = "info"  />
     < param  name = "MaxFileSize"  value = "50MB"  />
     < param  name = "MaxBackupIndex"  value = "10"  />
     < layout  class = "org.apache.log4j.PatternLayout" >
         < param  name = "ConversionPattern"  value = "%d [%X{requestURIWithQueryString}] %-5p %c{2} - %m%n"  />
     </ layout >
</ appender >
< logger  name = "XXXX.XXXX.XXXX"  additivity = "false" >
     < level  value = "${loggingLevel}"  />
     < appender-ref  ref = "DEMO"  />
</ logger >

root的作用是收集下面所有反馈上来的信息流并根据配置在root中appender进行输出,只要你在looger中配置了additivity="false",就不会反馈到root中。

意味着不会重复输出!

log4j.additivity用法和例子

因为需要将packageOne和packageTwo的日志写入各自单独的文件,同时在总的日志中不出现packageOne和PackageTwo的日志。

可以使用log4j.additivity。因为log4j是层次的,如果没有log4j.additivity默认写入到packageOneFileAppender和packageTwoFileAppender的都会写入rootLogger的rootFileAppender

log4j.logger.com.demo.packageOone = INFO, packageOneFileAppender
log4j.additivity.com.demo.

packageOne

= false
log4j.category.com.demo.packageTwo = INFO, packageTwoFileAppender
log4j.additivity.com.demo.packageTwo = false
log4j.rootLogger = INFO, rootFileAppender

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • log4j2异步Logger(详解)

    1 异步Logger的意义 之前的日志框架基本都实现了AsyncAppender,被证明对性能的提升作用非常明显. 在log4j2日志框架中,增加了对Logger的异步实现.那么这一步的解耦,意义何在呢? 如图,按我目前的理解:异步Logger是让业务逻辑把日志信息放入Disruptor队列后可以直接返回(无需等待"挂载的各个Appender"都取走数据) 优点:更高吞吐.调用log方法更低的延迟. 缺点:异常处理麻烦. 可变日志消息问题.更大的CPU开销.需要等待"最慢的A

  • 在Java中使用日志框架log4j的方法

    日志就是记录程序的运行轨迹,方便快速定位问题 如果用System.out.println(),信息是打印在控制台.等到产品上线后没有控制台,如果有报错信息,根本不知道去哪里看,就不知道是哪里出错. 而且开发的时候希望打印输出的内容多.方便排查,上线后只希望打印容易出错的部分.System.out.println()满足不了这个需求 而日志框架可以让错误信息输出到多个指定文件,不同的文件有不同的输出内容.方便排错,定位错误 一.log4j介绍 Log4j有三个主要的组件/对象:Loggers(记录

  • log4j使用教程详解(怎么使用log4j2)

    1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到你的项目中:这个就不说了. 3. 开始使用: 我们知道,要在某个类中使用log4j记录日志,只需要申明下面的成员变量(其实不一定要是成员变量,只是为了方便调用而已) 复制代码 代码如下: private static Logger logger = LogManager.getLogger(MyAp

  • log4j中logger标签中additivity属性的用法说明

    目录 log4j logger标签中additivity属性 log4j.additivity用法和例子 log4j logger标签中additivity属性 将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中. 可以达到以logger中配置的appender方式来输出日志而其他地方输出的目的,看配置: < appender name = "DEMO" class = "com.XXXXX.RollingF

  • java实现利用String类的简单方法读取xml文件中某个标签中的内容

    1.利用String类提供的indexOf()和substring()快速的获得某个文件中的特定内容 public static void main(String[] args) { // 测试某个词出现的位置 String reqMessage = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + "<in>" + "<head&g

  • Vue中el-form标签中的自定义el-select下拉框标签功能

    页面写死el-select下拉框标签: 通过v-for="item in stateArr"绑定,stateArr声明在Vue组件里面的data参数里面代码如下: 到此这篇关于Vue中el-form标签中的自定义el-select下拉框标签功能的文章就介绍到这了,更多相关Vue el-form标签 自定义el-select下拉框标签内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • MyBatis中foreach标签的collection属性的取值方式

    目录 foreach标签的collection属性的取值 传的是List列表 传的是Array数组 传的是Map collection属性总结 MyBatis使用foreach标签报错 原因 解决方案 foreach标签的collection属性的取值 传的是List列表 接口代码 List<Emp> findEmpByDeptnos(List<Integer> deptnos); xml配置代码 <select id="findEmpByDeptnos"

  • 详解iOS应用开发中autoresizing尺寸自动适应属性的用法

    前言:现在已经不像以前那样只有一个尺寸,现在最少的iPhone开发需要最少需要适配三个尺寸.因此以前我们可以使用硬坐标去设定各个控件的位置,但是现在的话已经不可以了,我们需要去做适配,也许你说可以使用两套UI或两套以上的UI,但那样不高效也不符合设计.iOS有两大自动布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增).autoresizing是UIView的属性,一直存在,使用也比较简单,但是没有autolayout那样强大.如果你的界面比较简

  • 对比Python中__getattr__和 __getattribute__获取属性的用法

    相信大家觉得大多数时候我们并不太需要关注getattribute和getattr的一些细节(至少我自己吧:)), 一般情况下消费我们自定义的类的时候,我们对类的结构都了解,不会刻意偏离,造成一些属性访问的错误. 不过作为一个有好奇心有追求有气质的python宝宝,怎么可能不稍稍研究一下呢.好吧,其实是在github上读到一个开源项目sinaweibopy的源码才看的,代码挺有意思,正好当作一个实用的例子,来看看如何自定义实现gettattr让代码更加的动态优雅: # 例子在原来的基础上简化了一下

  • Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题

    Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势.下面给大家介绍Vue.js表单标签中的单选按钮.复选按钮和下拉列表的取值问题. 摘要: 表单标签取值问题中,单选按钮.复选按钮和下拉列表都比较特殊.这里总结一下vue.js中关于单选按钮.复选按钮和下拉列表不同情况的取值特殊性问题. 表单标签取值问题中,单选按钮.复选按钮和下拉列表都比较特殊.这里总结一下vue.js中关于单选按钮.复选按钮和下拉列表不同情况的取值特殊性问题. 一.单选按钮 单选按钮:单选按钮用

  • 解决react中label标签for报错问题

    要求:点击账号或密码,自动将焦点转到相关的表单控件(input)上. 问题:功能可以使用,但是会有报错. 解决办法:react中label标签没有for属性,用htmlFor代替for属性 demo的代码: 报错 修改后的代码 到此这篇关于react中label标签for报错的文章就介绍到这了,更多相关react中label标签内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • JS中script标签defer和async属性的区别详解

    向html页面中插入javascript代码的主要方法就是通过script标签.其中包括两种形式,第一种直接在script标签之间插入js代码,第二种即是通过src属性引入外部js文件.由于解释器在解析执行js代码期间会阻塞页面其余部分的渲染,对于存在大量js代码的页面来说会导致浏览器出现长时间的空白和延迟,为了避免这个问题,建议把全部的js引用放在</body>标签之前. script标签存在两个属性,defer和async,因此script标签的使用分为三种情况: 1.<script

  • HTML代码中标签的全部属性 中文注释说明

    例:写一段图片HTML代码 <img src="http://localhost/phpwind6/zx/6.jpg" id="imgs" lang="en-us" alt="测试"> 该标签为img的代码中已可以看出已含有了四个属性,包括src id lang alt,加上本身的img标签有5个属性. 那么该img标签在正常的情况下倒底还含有多个属性?(包含对象),我现在为大家一一列出来(以上面那句代码为例,并附

随机推荐