`
yidongkaifa
  • 浏览: 4048261 次
文章分类
社区版块
存档分类
最新评论

Log4j使用技巧——让子类使用父类中定义的Logger

 
阅读更多
关于Log4j,是一个很庞大的话题,在这里,我不能对其特点和使用方法进行一一描述,只想记录自己在使用Log4j开发项目的过程中遇到的一些问题和自己的解决方案。

在项目中,有时候会遇到这么一种情况,我们需要记录一些类的使用情况,在类的声明中,我们会如此声明一个logger:
private static final Logger logger=Logger.getLogger(MyClass.class);
然后再用这个logger来打印我们关心的信息。这种方法一直都很不错在我们的类比较少的情况下。不过在类大量增加时,我们发现这种方法并不是一个好的方法,它使我们的工程看上去臃肿不堪,于是,我们必须采用一种简洁的方法来替换它,确保其能够让我们的程序看起来舒服一些。

首先定义一个父类,让logger作为其的一个成员变量,类型可以为protected或default;其次在父类的构造函数里初始化该logger:
logger=Logger.getLogger(getClass().getName());
使用这种方法,其子类就可以直接引用父类中定义的logger来记录我们所关心的信息,此外,更重要的是,使用getClass().getName(),可以使我们成功地将logger命名为子类的名称,同样能够丰富我们的调试信息,帮助我们定位问题所在。

相关代码如下:
//父类
public abstract class Parent {
protected Logger logger =null ;
public Parent(){
logger=Logger.getLogger(getClass().getName());
}
}

//子类
public class Son extends Parent {
public void test(){
logger.info("successful!");
}
public static void main(String[] args) {
(new Son()).test();
}
}
分享到:
评论

相关推荐

    Log4j简介 介绍log4j的原理和用法

    log4j的使用习惯,让每个类都拥有一个private static的Logger对象,用来输出该类中的全部日志信息 ,使用xml文件来完成对log4j环境的配置。在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一...

    Log4j-Logger详解

    Log4j-Logger详细说明以及应用

    Log4j日志管理系统简单使用说明

    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用,具体如下:    1、 配置根Logger,其语法为:  log4j.rootLogger = [ level ] , ...

    Log4j日志包

    log4j.rootLogger=debug,CONSOLE,testfile,A1,MAIL ################### # Console Appender ################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=...

    log4j-1.2.9

    log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出信息,设置此放式后必须设置file名称和路径 dailyRollingFileApperder 以日为单位划分在...

    Apache Log4j_1.2.17 完整依赖包

    Apache Log4j_1.2.17 完整依赖包,在jdk1.8.201中测试通过。使用教程https://www.tutorialspoint.com/springmvc/springmvc_log4j.htm

    log4j日志驱动包

    log4j.rootLogger=DEBUG,CONSOLE,A1,im log4j.addivity.org.apache=true # 应用于控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=DEBUG log4j.appender.CONSOLE.Target=...

    log4j jar包

    日志类jar包 所属apache分类下 log4j-1.2.17!!! 

    log4j配置文件

    log4j.rootLogger=info, stdout, log, errorlog log4j.Logger=search,Test ###Console ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j....

    使用log4j进行日志记录

    Log4j的包下载完成后,解压,将其中打包好的的log4j-1.x.x.jar导入你的工程LIB中。 Log4j之所以受欢迎的原因之一是它的灵活性。Log4j提供了灵活的配置方法,默认是调用BasicConfigurator.configure()来进行配置,但...

    Java Log4j所需Jar包

    Java Log4j 1,2 所需Jar...用于日志记录的技术很多,如 jdk 的 logger 技术,apache 的 log4j、log4j2 技术等。 Log4j 的全称为 Log for java,即,专门用于 java 语言的日志记录工具。其目前有两个版 本:Log4j 与 Log4j2。

    log4j使用实战

    log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:...

    log4j日志报错解决办法

    提示:log4j:WARN Please initialize the log4j system properly,log4j:WARN No appenders could be found for logger错误的处理办法

    log4j-1.2.14

    log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出信息,设置此放式后必须设置file名称和路径 dailyRollingFileApperder 以日为单位划分在...

    log4j配置及使用

    最新上传的经典的log4j使用文档 Log4j和commons-log4j不是同一个记日志的工具 ①配置根Logger ②配置日志信息输出目的地Appender ③配置日志信息的格式(布局)

    log4j使用例子和文档

    log4j使用,这个里面包含了一个例子,一个文档,例子里面既介绍了jdk中的Logger又有Log4j的例子,而文档则是全部介绍的Log4j的使用的,非常全面,值得一看。

    log4j自定义日志文件名及日志输出格式

    根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改

    log4j_properties配置详解

    ### set log levels ###log4j.rootLogger = debug , stdout , D , E### 输出到控制台 ###log4j.appender.stdout =org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target =System.outlog4j.appender.stdout....

    log4j.jar及log4j.xml

    包内整合了log4j.jar的jar包以及log4j.xml的xml文档,解压后直接使用

    Log4j 学习笔记.doc

    Log4j 学习笔记. 1. Log4j的类图 2. Logger:日志写出器 1. Logger的输出方法 2. Logger的命名规则 ...5. 我自己的一个使用xml文件配置log4j环境的很简单的例子 6. Log4j的编码习惯 参考资料

Global site tag (gtag.js) - Google Analytics