当前位置: 首页 > news >正文

一块钱购物网站qq邮箱网页版

一块钱购物网站,qq邮箱网页版,浙江新华建设有限公司网站,免费建网站OK#xff0c;现在我们来研究输出低Appended。Appender控制日志输出的位置Log4j日志系统允许把日志输出到不同的地方#xff0c;如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。Log4j内置了常用的输出地#xff0c;一般…OK现在我们来研究输出低Appended。Appender控制日志输出的位置Log4j日志系统允许把日志输出到不同的地方如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。Log4j内置了常用的输出地一般情况下配置一下即可使用所有的Appender都实现了自org.apache.log4j.Appender接口。在log4j.properties中Appended都使用log4j.appender.*配置。常用的输出位置有如下几个ConsoleAppender(控制台)FileAppender(文件)RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)DailyRollingFileAppender(每天产生一个日志文件)JDBCAppender(输出到JDBC数据库)SocketAppender(远程日至服务器)WriterAppender(将日志信息以流格式发送到任意指定的地方)SMTPAppender(发送邮件)配置时使用方式为log4j.appender.appenderNamefully.qualified.name.of.appender.classlog4j.appender.appenderName.option1value1…log4j.appender.appenderName.optionNvalueN也可以自己实现Appender接口 这样就为日志的输出提供了相当大的便利。这里我们来举几个例子熟悉下常用的日志输出。1输出到控制台控制台是最常用的输出地前面的一系列博客我们用的例子都是在控制台输出。控制台输出实现类为org.apache.log4j.ConsoleAppender。下面是一份比较完整的log4j.properties配置文件og4j.rootLoggerDEBUG,console# 以下是rootLogger的配置子类默认继承但是子类重写下面配置rootLogger自己配置我晕#输出到控制台log4j.appender.consoleorg.apache.log4j.ConsoleAppender#设置输出样式log4j.appender.console.layoutorg.apache.log4j.PatternLayout#日志输出信息格式为log4j.appender.console.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#DEBUG以上级别输出Threshold入口临界值#log4j.appender.console.ThresholdDEBUG#日志编码方式#log4j.appender.console.EncodingUTF-8#是否立即输出#log4j.appender.console.ImmediateFlushtrue#使用System.error作为输出#log4j.appender.console.TargetSystem.error关于上面这份配置文件有3点解释1我们在实际的配置文件中#注释必须另起一行2控制台输出需要配置layput属性最常用的就是正则表达式格式。还有一些可选的属性一般实际中不会怎么用到Encoding设置编码方式ImmediateFlush设置是否缓存Target设置输出到System.out还是System.err。3Threshold用来设置该Appender的级别只对本Appender生效。所有的Appender都可通过设置Threshold来设置本Appender的启用级别。2输出到文件文件输出FileAppender把日志输出到指定的文件中文件输出的实现类为org.apache.log4j.FileAppender配置时候需要用File指定文件名称。当然这个路径可以使用相对路径也可以使用绝对路径。下面一份文件输出的log4j.properties的配置文件log4j.category.org.linkinpark.commons.logtest1ERROR,filelog4j.rootLoggerDEBUG,console# 以下是rootLogger的配置子类默认继承但是子类重写下面配置rootLogger自己配置我晕#输出到控制台log4j.appender.consoleorg.apache.log4j.ConsoleAppender#设置输出样式log4j.appender.console.layoutorg.apache.log4j.PatternLayout#日志输出信息格式为log4j.appender.console.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#DEBUG以上级别输出Threshold入口临界值#log4j.appender.console.ThresholdDEBUG#日志编码方式#log4j.appender.console.EncodingUTF-8#是否立即输出#log4j.appender.console.ImmediateFlushtrue#使用System.error作为输出#log4j.appender.console.TargetSystem.error#输出到文件(这里默认为追加方式)log4j.appender.fileorg.apache.log4j.FileAppender#输出文件位置log4j.appender.file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/log4j.loglog4j.appender.file.Appendtrue#样式为TTCCLayout#log4j.appender.file.layoutorg.apache.log4j.TTCCLayoutlog4j.appender.file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n关于上面的配置文件我这里解释一下1可选参数Append配置是否在源文件内容的基础上追加日志。如果是falseLogger初始化会先情清掉文件内容也就是说每次重启程序原来的日志就会丢失。如果为true日志文件就会越来越大。默认为true。2我们上面用category属性来重新定义我们的自己的logtest1包下面的日志输出然后指定日志输出到/Users/LinkinPark/WorkSpace/linkin-log-test/log/log4j.log文件中。现在我们来检查下控制台输出没有问题category继承了默认的rootLogger在控制台输出了而且还在我们上面指定的路径下的日志文件中追加进去了日志内容。➜ WorkSpace cd linkin-log-test➜ linkin-log-test lspom.xml src target➜ linkin-log-test pwd/Users/LinkinPark/WorkSpace/linkin-log-test➜ linkin-log-test lslog pom.xml src target➜ linkin-log-test cd log➜ log lslog4j.log➜ log more log4j.log[2016-02-23 09:52:48]-[main-ERROR]-[org.linkinpark.commons.logtest1.Log4jTest1-logTest(30)] error级别的日志输出[2016-02-23 09:52:48]-[main-FATAL]-[org.linkinpark.commons.logtest1.Log4jTest1-logTest(31)] fatal级别的日志输出[2016-02-23 09:52:48]-[main-ERROR]-[org.linkinpark.commons.logtest1.Log4jTest1-logTest(38)] 人工抛出一个异常3输出到按大小滚动文件按大小滚动文件输出RollingFileAppender把日志输出到指定的文件文件达到指定的大小时就会自动更名。按尺寸滚动文件输出类为org.apache.log4j.RollingFileAppender需配置文件名称文件的最大尺寸。下面是一份配置文件log4j.category.org.linkinpark.commons.logtest1ERROR,file,rolling_filelog4j.rootLoggerDEBUG,console# 以下是rootLogger的配置子类默认继承但是子类重写下面配置rootLogger自己配置我晕#输出到控制台log4j.appender.consoleorg.apache.log4j.ConsoleAppender#设置输出样式log4j.appender.console.layoutorg.apache.log4j.PatternLayout#日志输出信息格式为log4j.appender.console.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#DEBUG以上级别输出Threshold入口临界值#log4j.appender.console.ThresholdDEBUG#日志编码方式#log4j.appender.console.EncodingUTF-8#是否立即输出#log4j.appender.console.ImmediateFlushtrue#使用System.error作为输出#log4j.appender.console.TargetSystem.error#输出到文件(这里默认为追加方式)log4j.appender.fileorg.apache.log4j.FileAppender#输出文件位置log4j.appender.file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/log4j.log#是否在原日志基础上追加输出日志。true默认追加。false清掉原来日志重新添加log4j.appender.file.Appendtrue#样式为TTCCLayout#log4j.appender.file.layoutorg.apache.log4j.TTCCLayoutlog4j.appender.file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#按大小滚动文件(这里默认为追加方式)log4j.appender.rolling_fileorg.apache.log4j.RollingFileAppender#输出文件位置log4j.appender.rolling_file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/rolling_log4j.loglog4j.appender.rolling_file.Appendtrue#文件达到最大值自动更名log4j.appender.rolling_file.MaxFileSize1KB#最多备份100个文件log4j.appender.rolling_file.MaxBackupIndex100log4j.appender.rolling_file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.rolling_file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n关于上面的配置文件解释如下1配置的滚动文件名为rolling_log4j该文件在/Users/LinkinPark/WorkSpace/linkin-log-test/log/rolling_log4j.log路径中我们设置了文件最大为1K。当rolling_log4j.log达到1K时就会自动更名为rolling_log4j.log.1rolling_log4j.log.2rolling_log4j.log.3....直到rolling_log4j.log.100。2Logger支持多个Appender用逗号将多个Appender名字隔开即可。多次运行我们自己写的测试类会发现rolling_log4j.log文件在滚动。下面我贴出具体的文件日志输出➜ linkin-log-test cd log➜ log ls -ltotal 16-rw-r--r-- 1 LinkinPark staff 1110 2 23 10:17 log4j.log-rw-r--r-- 1 LinkinPark staff 364 2 23 10:17 rolling_log4j.log➜ log ls -ltotal 16-rw-r--r-- 1 LinkinPark staff 1850 2 23 10:18 log4j.log-rw-r--r-- 1 LinkinPark staff 0 2 23 10:18 rolling_log4j.log-rw-r--r-- 1 LinkinPark staff 1092 2 23 10:18 rolling_log4j.log.1➜ log ls -ltotal 24-rw-r--r-- 1 LinkinPark staff 2220 2 23 10:18 log4j.log-rw-r--r-- 1 LinkinPark staff 364 2 23 10:18 rolling_log4j.log-rw-r--r-- 1 LinkinPark staff 1092 2 23 10:18 rolling_log4j.log.1➜ log ls -ltotal 24-rw-r--r-- 1 LinkinPark staff 2590 2 23 10:19 log4j.log-rw-r--r-- 1 LinkinPark staff 728 2 23 10:19 rolling_log4j.log-rw-r--r-- 1 LinkinPark staff 1092 2 23 10:18 rolling_log4j.log.1➜ log ls -ltotal 24-rw-r--r-- 1 LinkinPark staff 2960 2 23 10:19 log4j.log-rw-r--r-- 1 LinkinPark staff 0 2 23 10:19 rolling_log4j.log-rw-r--r-- 1 LinkinPark staff 1092 2 23 10:19 rolling_log4j.log.1-rw-r--r-- 1 LinkinPark staff 1092 2 23 10:18 rolling_log4j.log.24输出到按日志滚动文件按日期滚动文件输出DailyRollingFileAppender将日志输出到指定的文件当日期发生变化时会将文件按照指定的日期格式自动改名。日期滚动文件输出类为org.apache.log4j.DailyRollingFileAppender。配置文件如下log4j.category.org.linkinpark.commons.logtest1ERROR,file,rolling_file,daily_rolling_filelog4j.rootLoggerDEBUG,console# 以下是rootLogger的配置子类默认继承但是子类重写下面配置rootLogger自己配置我晕#输出到控制台log4j.appender.consoleorg.apache.log4j.ConsoleAppender#设置输出样式log4j.appender.console.layoutorg.apache.log4j.PatternLayout#日志输出信息格式为log4j.appender.console.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#DEBUG以上级别输出Threshold入口临界值#log4j.appender.console.ThresholdDEBUG#日志编码方式#log4j.appender.console.EncodingUTF-8#是否立即输出#log4j.appender.console.ImmediateFlushtrue#使用System.error作为输出#log4j.appender.console.TargetSystem.error#输出到文件(这里默认为追加方式)log4j.appender.fileorg.apache.log4j.FileAppender#输出文件位置log4j.appender.file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/log4j.log#是否在原日志基础上追加输出日志。true默认追加。false清掉原来日志重新添加log4j.appender.file.Appendtrue#样式为TTCCLayout#log4j.appender.file.layoutorg.apache.log4j.TTCCLayoutlog4j.appender.file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#按大小滚动文件(这里默认为追加方式)log4j.appender.rolling_fileorg.apache.log4j.RollingFileAppender#输出文件位置log4j.appender.rolling_file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/rolling_log4j.loglog4j.appender.rolling_file.Appendtrue#文件达到最大值自动更名log4j.appender.rolling_file.MaxFileSize1KB#最多备份100个文件log4j.appender.rolling_file.MaxBackupIndex100log4j.appender.rolling_file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.rolling_file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n#按日期滚动文件log4j.appender.daily_rolling_fileorg.apache.log4j.DailyRollingFileAppender#输出文件位置log4j.appender.daily_rolling_file.File/Users/LinkinPark/WorkSpace/linkin-log-test/log/daily_rolling_log4j.log#文件滚动日期格式log4j.appender.daily_rolling_file.DatePattern.yyyy-MM-ddlog4j.appender.daily_rolling_file.layoutorg.apache.log4j.PatternLayoutlog4j.appender.daily_rolling_file.layout.ConversionPattern[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)] %m%n关于上面的配置文件解释如下1上面的配置中我们新添加DailyRollingFileAppender类型的Appender。我们的日志文件名称为daily_rolling_file日期格式为yyyy-MM-dd。进入到新的一天后文件就会被自动更名格式为daily_rolling_file.2008-08-08。每天’.’YYYY-MM-dd(默认)2.每星期’.’YYYY-ww3.每月’.’YYYY-MM4.每隔半天’.’YYYY-MM-dd-a5.每小时’.’YYYY-MM-dd-HH6.每分钟’.’YYYY-MM-dd-HH-mm2这种配置也是可能我们在实际编码中最常用到的项目发布到服务器上然后每天生成一个日志文件。OK上面我整理了最常用的几种Appender他们就是ConsoleAppender(控制台)FileAppender(文件)RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)DailyRollingFileAppender(每天产生一个日志文件)。剩下的几种我们一般不会用到这里也就不做赘述了。现在我们来整理下这4种Appender的关系。上面的4种Appender都实现了Appender接口然后ConsoleAppender和FileAppender同级别FileAppender之下衍生出了2个子类RollingFileAppenderDailyRollingFileAppender。关于这些我会在后面的源码系列中仔细的整理到的。
http://www.zqtcl.cn/news/237241/

相关文章:

  • 上海湖南网站建设新学校网站建设成果
  • 网站开发有哪些竞赛建站行业新闻
  • 满足seo需求的网站大型网站常见问题
  • 做网站要求高吗珠宝网站建设
  • 网站建设方案 预算高端制作网站哪家专业
  • 响应式网站什么意思长春做个人网站做不了
  • 手机网站排名优化软件网站登陆页面怎么做
  • 辽宁网站建设价格杭江建设有限公司
  • 成立公司在什么网站网络推广推广培训
  • 承德网站制作公司哪家好公司网络组建方案模板
  • 用wordpress 建网站网站关键词怎么改
  • 怎么做网站做站点创建站怎么上传网站怎么办
  • 十堰网站建设专家html做的旅游网站
  • 网站项目上线流程网站改版需求说明
  • 网站建设制作公司xshell如何做网站
  • 义乌个人兼职做建设网站琼海做网站公司
  • 什么网站可以直接做word在柬埔寨做网站彩票推广
  • 深圳市宝安区住房和建设局网站校园网络方案设计
  • 株洲建设网站制作seo快速软件
  • 建站什么程序好wordpress返佣
  • 网站建设使用虚拟主机的优点与缺点马蹄室内设计论坛
  • 像wordpress一样的网站wordpress提示数据库出错
  • 优化网站首页新项目首码对接平台
  • 一个完整的网站建设过程wordpress企业中文模板下载
  • 我做微信淘宝客网站有哪些在公司做网站是什么职位
  • 湖南网站建设公司 干净磐石网络网站开发技术可行性分析怎么写
  • 石家庄制作网站网络推广与优化
  • 建站平台免代码可以自己设计图案的软件
  • 中山网站开发公司事业单位 网站备案
  • wordpress 做用户登录seo快速推广窍门大公开