简易log4j 父logger和子logger
log4j 父logger和子logger
定义子logger其目的就是能够在某一范围内(某一个class或者某一个package)下面,日志的输出方式与其他地方的日志输出方式不同。
log4j.properties
- <strong><span style="font-size:14px;">log4j.rootLogger = DEBUG,stdout,D
- #log4j.debug=ture //是否打开log4j的内部日志打印
- #(ConsoleAppender:控制台打印)
- log4j.appender.stdout = org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target = System.out
- log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
- #(DailyRollingFileAppender)
- log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.D.File = G://logs/log.log
- log4j.appender.D.Append = true
- log4j.appender.D.Threshold = DEBUG
- log4j.appender.D.layout = org.apache.log4j.PatternLayout
- log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
- # (mail)
- log4j.appender.mail=org.apache.log4j.net.SMTPAppender
- log4j.appender.mail.Threshold=DEBUG
- log4j.appender.mail.BufferSize=10
- log4j.appender.mail.From = 123@qq.com
- log4j.appender.mail.SMTPHost=smtp.qq.com
- log4j.appender.mail.Subject=Log4J Message
- log4j.appender.mail.SMTPUsername=123
- log4j.appender.mail.SMTPPassword=xxx
- log4j.appender.mail.To= 456@qq.com
- log4j.appender.mail.layout=org.apache.log4j.PatternLayout
- log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
- #配置子logger,目的就是控制一定范围内的日志输出,比如这里的子logger是控制cn.server.test包下面的所有类的日志输出,其父logger就是rootLogger
- log4j.logger.cn.server.test=error,E
- log4j.additivity.cn.server.test=false //
- log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.E.File =G://logs/error.log
- log4j.appender.E.Append = true
- log4j.appender.E.Threshold = ERROR
- log4j.appender.E.layout = org.apache.log4j.PatternLayout
- log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
配置子logger,目的就是控制一定范围内的日志输出,比如这里的子logger是控制cn.server.test包下面的所有类的日志输出,其父logger就是rootLogger。
- log4j.logger.cn.server.test=error,E
在cn.server.test包里面中使用
- Logger logger = Logger.getLogger(xxx.class)
得到logger对象,然后使用logger对象进行日志输入的时候,logger会根据xxx.class的全类名找到这里声明的子Logger
- log4j.logger.cn.server.test=error,E
在cn.server.test包外的类,也可以使用
- Logger logger = Logger.getLogger("cn.server.test");
特别指定使用该子logger进行日志输出。
log4j的additivity属性: 表示子logger是否要在父logger的appender中输出日志,若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。
简易log4j 父logger和子logger的更多相关文章
- Log4j扩展使用--日志记录器Logger
OK,现在我们认真的研究下Logger的配置,进行相关配置扩展. Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).其中,Logger负责记录 ...
- JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
之前还真没做过类似的东西,,top页面获取子页面的document.. 在百度搜了下即找到这个东东,还好,能用. 主要就是使用 contentWindow方法,获取子页面的所有document,再做处 ...
- Jquery父页面和子页面的相互操作
//父页面调用子页面Add函数 $("iframe")[0].contentWindow.Add() //父页面对子页面Id为Sava的Dom元素执行一次单击操作 $(" ...
- Caliburn.Micro 关闭父窗体打开子窗体
比如我们在做登录的时候需要关闭父窗体打开子窗体.使用Caliburn.Micro它的时候我们关闭登录窗口的时候主页面也会关闭. 解决方法就是在登录页面的CS里面写 IndexView iv = new ...
- 父容器根据子容器高度自适应:设置父容器 height:100%;overflow:hidden;
父容器根据子容器高度自适应:设置父容器 height:100%;overflow:hidden;
- 父元素与子元素之间的margin-top问题
父元素的盒子包含一个子元素盒子,给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值,而子元素和父元素的边距则没有发生变化. html代码: <div c ...
- HTML 父元素与子元素之间的margin-top问题
问题: 父元素的盒子包含一个子元素盒子,给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值,而子元素和父元素的边距则没有发生变化. 代码如下: <div ...
- artdialog4.1.7 中父页面给子页面传值
artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法: 在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnVal ...
- HTML中IFrame父窗口与子窗口相互操作
一.Iframe篇 //&&&&&&&&&&&&&&&&&&am ...
随机推荐
- nodejs中cookie、session的使用
因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如 ...
- html/JS onload的详解
等待页面都加载完后再执行 <!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...
- flask路由末端带斜线和不带斜线的区别
路由末端带有“/” app.route('/test/') 在浏览器中输入http://127.0.0.1:5000/test/ 和http://127.0.0.1:5000/test都能访问 路由末 ...
- json_decode($json, true) true什么意思
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}' ...
- 深入理解jQuery插件开发总结(二)
1,开始 可以通过为jQuery.fn增加一个新的函数来编写jQuery插件.属性的名字就是你的插件的名字: jQuery.fn.myPlugin = function(){ //开始写你的代码吧! ...
- (1-3)line-height与图片的表现
(1-3)line-height与图片的表现 这篇文章真的很重要,耐心看,重中之重. 一.行高和图片的表现 图片和行高有什么歪腻呢?? 很多人不明白,为什么我图片好好的放在一个标签里面它就出现了如下问 ...
- ajax方法XHR.readyState五种状态与示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 05_ActiveMQ的selectors
[ JMS Selectors ] JMS Selectors用于在订阅中,基于消息属性对消息进行过滤. 以下是个Selectors的例子:Java代码 consumer = session.crea ...
- 139.00.004 Git学习-远程仓库之Github
参考Github官方HelloWorld入门教程 "有了远程仓库,妈妈再也不用担心我的硬盘了."--Git点读机 本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二 ...
- 实验三:klee的执行重现机制(示例分析)
结论性内容: (1)如果是在程序中使用klee_make_symbolic,则可以使用下列脚本进行重现. export LD_LIBRARY_PATH=/home/klee/xiaojiework/k ...