本文根据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. BMBRBlockFixerBMBRRegenerator中的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日志配置的更多相关文章

  1. django 1.8 日志配置

    django 1.8 日志配置 以下为setings配置logging代码片段 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_ ...

  2. nginx日志配置

    nginx日志配置 http://www.ttlsa.com/linux/the-nginx-log-configuration/ 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如 ...

  3. 日志配置logback

    在选择项目日志框架时,发现log4j的作者开发了新的日志框架,据说性能提高不少,那就选它了,不过,除了配置上有点不习惯外,最重要的一点 ,打印线程号这个功能依然没有(打印线程名这个东西是在是个鸡肋). ...

  4. 服务器是windows时tomcat无法打印所有日志配置修改

    Tomcat运行仅一天磁盘空间突然就增加了很多,发现是日志文件太大了,修改tomcat的日志配置即可. 查看目录所占空间大小: ? 1 [root@XXX webapps]du -sh 清理方法: ? ...

  5. [译]Stairway to Integration Services Level 12 - 高级日志配置

    介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实 ...

  6. [译]Stairway to Integration Services Level 11 - 日志配置

    介绍 在前一个章节我们讨论了事先行为,分享了如何操作默认的行为和时间冒泡,并且介绍了父子模型. 本文中,我们会配置SSIS日志. 进行简单及高级日志配置,存储,和检索的实验.并且生成自定义日志信息. ...

  7. Nginx日志配置及日志切割

    日志配置 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_s ...

  8. SpringBoot之简单日志配置

    我的目的指定一个文件夹输出:(不采用指定文件的原因是一个文件的大小时间长了会很大,不利于处理) logging: level: root: INFO org.sselab: controller: I ...

  9. springboot 入门六-多环境日志配置

    在应用项目开发阶段,需要对日志进入很详细的输出便于排查问题原因,上线发布之后又只需要输出核心的日志信息的场景.springboot也提供多环境的日志配置.使用springProfile属性来标识使用那 ...

随机推荐

  1. .net反射详解

    前言 之所以要写这篇关于C#反射的随笔,起因有两个:   第一个是自己开发的网站需要用到   其次就是没看到这方面比较好的文章. 所以下定决心自己写一篇,废话不多说开始进入正题. 前期准备 在VS20 ...

  2. C++类型转换总结

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a.C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. const_cast, ...

  3. LINUX下中文语言包的安装(转)

    在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...

  4. SQL(二) 将一张表数据插入另外一张表

    INSERT INTO BaomingRelation ([BaomingID] ,[RelationNumber] ,[UserID] ,[Area]) SELECT BaomingID,NEWID ...

  5. iOS音频处理

    ios音频处理 1. iOS底层音频处理技术(带源代码) http://www.cocoachina.com/ios/20111122/3563.html 2.ios 音频入门 http://blog ...

  6. maven,本地仓库和私服nexus的配置,以及eclipse载入maven

    首先可以进入http://maven.apache.org/官网查看如何配置 一.配置环境 1 确定自己的java运行环境配置正确-->在cmd运行 java -version或echo %JA ...

  7. JQuery的ready函数与JS的onload的区别详解

    JQuery的ready函数与JS的onload的区别:1.执行时间window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.$(document).ready()是DOM结构绘制 ...

  8. wxPython学习笔记(三)

    要理解事件,我们需要知道哪些术语? 事件(event):在你的应用程序期间发生的事情,它要求有一个响应. 事件对象(event object):在wxPython中,它具体代表一个事件,其中包括了事件 ...

  9. asp.net 负载均衡下session存储的解决方法

    转自:http://www.cnblogs.com/david100zhang/archive/2011/12/28/2304917.html 在WEB场中,动态网页往往会因为几台主机做了负载而产生S ...

  10. java实现excel的导入导出(poi详解)[转]

    java实现excel的导入导出(poi详解) 博客分类: java技术 excel导出poijava  经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个 ...