CodedDFS日志配置
本文根据Log4j的配置属性,编写了用于记录BMBR编码的日志
author: zyumeng
Blog: [url] http://www.cnblogs.com/zyumeng/ [/url]
利用配置文件/conf/CodedDFS.properties(放置在工程conf目录下),分别记录CodedDFS中BMBR的编码速率、解码速率和修复速率。
## CodedDFS.properties for LOGs in CodedDFS project
## # Define the root logger ## # 连接到根日志记录器的日志记录器,设置为INFO级别,在控制台显示,输出在滚动文件 log4j.rootLogger=INFO, stdout, RFA
## # Console config ## # 设置控制台显示ConsoleAppender log4j.appender.stdout=org.apache.log4j.ConsoleAppender # Log4j的输出布局模式(Layout接口) # 这里用的是PatternLayout,可以灵活的制定布局模式 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern format: Date LogLevel; LoggerName; LogMessage; # 输出格式:%d-时间;%p-logger级别;%c-类名{两级};%m-调用logger时设定输出内容;%n-换行 log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss}%p%c{2}:%m%n
## # Rolling File Appender = RFA # Add " RFA " to rootlogger above if you want to use this ## # 设置一个滚动日志文件 RollingFileAppender log4j.appender.RFA=org.apache.log4j.RollingFileAppender # Define the output file is logs/BMBRFileSystem.log # 输出到logs/BMBRFileSystem.log log4j.appender.RFA.File=logs/BMBRFileSystem.log log4j.appender.RFA.MaxFileSize=1000KB # Keep one backup file log4j.appender.RFA.MaxBackupIndex=1 log4j.appender.RFA.layout=org.apache.log4j.PatternLayout log4j.appender.RFA.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss}%p%c{2}:%m%n
# 对不同的类输出不同的文件
## # BMBREncoder # Output the logs of the BMBREncoder.class alone ## # 让edu.pkusz.codec.BMBR.BMBREncoder中的logger使用log4j.appender.EC所做的配置。 log4j.logger.edu.pkusz.codec.BMBR.BMBREncoder=INFO, EC, stdout
# 自定义的日志默认是同时输出到log4j.rootLogger所配置的日志中的 # 只让它们输出到自己指定的日志中:设置是否同时输出到log4j.rootLogger所配置的日志中 # 设为false就不会输出到其它位置 log4j.additivity.edu.pkusz.codec.BMBR.BMBREncoder=false log4j.appender.EC=org.apache.log4j.RollingFileAppender # Define the output file is logs/BMBREncoder.log log4j.appender.EC.File=logs/BMBREncoder.log log4j.appender.EC.MaxFileSize=1000KB log4j.appender.EC.layout=org.apache.log4j.PatternLayout log4j.appender.EC.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss}%p%c{2}:%m%n
## # BMBRDecoder # Output the logs of the BMBRDecoder.class alone ## # 让edu.pkusz.codec.BMBR. BMBRDecoder中的logger使用log4j.appender.DC所做的配置。 log4j.logger.edu.pkusz.codec.BMBR.BMBRDecoder=INFO,DC,stdout # 设置不同时输出到log4j.rootLogger所配置的日志中 log4j.additivity.edu.pkusz.codec.BMBR.BMBRDecoder=false log4j.appender.DC=org.apache.log4j.RollingFileAppender # Define the output file is logs/BMBRDecoder.log log4j.appender.DC.File=logs/BMBRDecoder.log log4j.appender.DC.MaxFileSize=1000KB log4j.appender.DC.layout=org.apache.log4j.PatternLayout log4j.appender.DC.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss}%p%c{2}:%m%n
## # BMBRBlockFixer # Output the logs of the BMBRBlockFixer.class and BMBRRegenerator.class alone ## # 让edu.pkusz.codec.BMBR. BMBRBlockFixer和BMBRRegenerator中的logger # 使用log4j.appender.FB所做的配置。 log4j.logger.edu.pkusz.codec.BMBR.BMBRBlockFixer=INFO,BF,stdout log4j.logger.edu.pkusz.codec.BMBR.BMBRRegenerator=INFO,BF,stdout # 设置不同时输出到log4j.rootLogger所配置的日志中 log4j.additivity.edu.pkusz.codec.BMBR.BMBRBlockFixer=false log4j.additivity.edu.pkusz.codec.BMBR.BMBRRegenerator=false log4j.appender.BF=org.apache.log4j.RollingFileAppender # Define the output file is logs/BMBRBlockFixer.log log4j.appender.BF.File=logs/BMBRBlockFixer.log log4j.appender.BF.MaxFileSize=1000KB log4j.appender.BF.layout=org.apache.log4j.PatternLayout log4j.appender.BF.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss}%p%c{2}:%m%n |
下面是调用的实例SampleLogger类
package org.apache.hadoop.fs;
import java.io.File;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.config.PropertyPrinter;
publicclass LogTester { privatestatic Log log = LogFactory.getLog(LogTester.class); publicstaticvoid main(String[] arg){ // 注意要利用PropertyConfigurator.configure加载日志配置文件,也可使用相对路径 PropertyConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator + "CodedDFS.properties");
log.info("=======================LogTester======================"); log.debug("DEBUG"); log.error("ERROR"); log.info("INFO"); log.warn("WARM"); log.trace("TRACE");
} } |
直接运行SampleLogger.class
运行结果:
因为配置文件中定义的是INFO级别,所以不输出DEBUG和TRACE信息
修改为log4j.rootLogger=DEBUG, stdout, RFA
运行结果:
参考资料:
http://zhangjunhd.blog.51cto.com/113473/21014/
http://blog.csdn.net/wiwipetter/article/details/4390579
CodedDFS日志配置的更多相关文章
- django 1.8 日志配置
django 1.8 日志配置 以下为setings配置logging代码片段 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_ ...
- nginx日志配置
nginx日志配置 http://www.ttlsa.com/linux/the-nginx-log-configuration/ 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如 ...
- 日志配置logback
在选择项目日志框架时,发现log4j的作者开发了新的日志框架,据说性能提高不少,那就选它了,不过,除了配置上有点不习惯外,最重要的一点 ,打印线程号这个功能依然没有(打印线程名这个东西是在是个鸡肋). ...
- 服务器是windows时tomcat无法打印所有日志配置修改
Tomcat运行仅一天磁盘空间突然就增加了很多,发现是日志文件太大了,修改tomcat的日志配置即可. 查看目录所占空间大小: ? 1 [root@XXX webapps]du -sh 清理方法: ? ...
- [译]Stairway to Integration Services Level 12 - 高级日志配置
介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾 Reviewing SSIS Task Events 在做实 ...
- [译]Stairway to Integration Services Level 11 - 日志配置
介绍 在前一个章节我们讨论了事先行为,分享了如何操作默认的行为和时间冒泡,并且介绍了父子模型. 本文中,我们会配置SSIS日志. 进行简单及高级日志配置,存储,和检索的实验.并且生成自定义日志信息. ...
- Nginx日志配置及日志切割
日志配置 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_s ...
- SpringBoot之简单日志配置
我的目的指定一个文件夹输出:(不采用指定文件的原因是一个文件的大小时间长了会很大,不利于处理) logging: level: root: INFO org.sselab: controller: I ...
- springboot 入门六-多环境日志配置
在应用项目开发阶段,需要对日志进入很详细的输出便于排查问题原因,上线发布之后又只需要输出核心的日志信息的场景.springboot也提供多环境的日志配置.使用springProfile属性来标识使用那 ...
随机推荐
- Chapter 2. OpenSSL的安装和配置学习笔记
Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装 ...
- Rectangle 响应按键
import QtQuick 2.4 import QtQuick.Window 2.2 Window { visible: true MainForm { anchors.fill: parent ...
- 【转】(DT系列四)驱动加载中, 如何取得device tree中的属性
原文网址:http://www.cnblogs.com/biglucky/p/4057488.html 本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属 ...
- Spring 4.0 StandaloneMockMvcBuilder java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig 问题解决
standaloneSetup(clrr). build(); 执行第二行 build() 时,出现下面的错误提示. java.lang.NoClassDefFoundError: javax/ser ...
- 弱爆了的Candies
题目出处 题目描述: n个小朋友坐成一排,每个小朋友有一个数表示他的表现(数字越大表现越好).老师要给每个小朋友发至少1颗糖,相邻的两个小朋友,得分较高的小朋友必须得到更多的糖,问:老师至少需要给出多 ...
- SQL Server优化之SQL语句优化
一切都是为了性能,一切都是为了业务 一.查询的逻辑执行顺序 (1) FROM left_table (3) join_type JOIN right_table (2) ON join_conditi ...
- 修改上一篇文章的node.js代码,支持默认页及支持中文
服务端 app.js var app = require('http').createServer(handler) var io = require('socket.io')(app); var f ...
- freemarker的使用心得
freemarker眼下尽管使用的公司不多,可是在某些时候就必须使用,当须要遍历json数据的时候,眼下市面上的好多显示组件都达不到要求唯一能用的也就仅仅有freemarker了.在java里使用的模 ...
- JAVA设计模式(09):结构型-代理模式(Proxy)
代理模式是经常使用的结构型设计模式之中的一个,当无法直接訪问某个对象或訪问某个对象存在困难时能够通过一个代理对象来间接訪问,为了保证client使用的透明性,所訪问的真实对象与代理对象须要实现同样的接 ...
- 01标题背包水章 HDU2955——Robberies
原来是dp[i],它代表的不被抓的概率i这最大的钱抢(可能1-100) 客是dp[i]表示抢了i钱最大的不被抓概率,嗯~,弱菜水题都刷不动. 那么状态转移方程就是 dp[i]=max(dp[i],dp ...