`
francis.xjl
  • 浏览: 16625 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

总结一下log4j

阅读更多
log4j是一个非常优秀的日志操作组件,它不仅能够替代System.out.println()输出调试信息,而且还能通过配置日志级别,根据不同的需求,输出不同级别的信息,因此可以将软件的调试与运行阶段区分开,以往采用的方式是将Debug时输出的语句逐个删除,当项目变得庞大时,这项工作会花费大量的成本,而Log4j则省去了这部分的成本,只需要在log4j的配置文件中更改输出级别即可。它还能定义不同的输出环境,可以是控制台,也可以是文件,同时还能定义输出信息的格式,这使信息的输出更加灵活高效。
通过这几天的学习,基本了解了Log4j的用法:
1.首先需要配置的是Logger,这是为了区别不同的Logger.Logger中有一种很重要,就是rootLogger。因为它的一些属性会被普通的logger继承下来,它的定义如下:
log4j.rootLogger=INFO,console, file

对于普通的logger定义格式如下:
log4j.logger.loggerName=WARN,console 

这里的INFO、WARN是指日志的级别,console、file是指日志的Appender,可以理解为日志的输出地。
可以定义多个不同的Appender,当然这里的file,console只是一个指代符号,具体file代表哪个Appender来执行,还需要对其进行配置。
日志的级别常用的有五种,从低到高顺序如下:DEBUG<INFO<WARN<ERROR<FATAL。配置了日志级别,比如说WARN,将会输出不小于WARN级别的日志。

日志的继承关系,我在这里只重点描述一下rootLogger与普通Logger之前的继承关系,对于普通Logger之前的继承关系可以查看相关文档。
如果已经配置了rootLogger,那么对于普通的Logger而言,如果没有配置日志级别,如下:
log4j.rootLogger=INFO,console, file
log4j.logger.testLogger=,console

那么这个testLogger将会继承rootLogger的日志级别,在这里为INFO。
对于Appender而言,普通Logger是会完全继承rootLogger,对于上面这个配置,如果采用testLogger输出信息,你会发现,在console下面会输出两遍相同的信息,原因就在这里。此外在所配置的文件中也会有输出。
2.然后就是针对Appender的配置,注意Appender是指输出地,一个Logger可以使用不同的Appender,而一个Appender也可以供多个Logger使用。
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=c:%c,m:%m,n:%n,r:%r,d:%d{DATE}.\n

这里的console即为上面配置的logger。上面三行中,第一行配置的是对象Logger的Appender,即输出源。第二行配置的是显示的模式类型,一般的配置成SimpleLayout,这里配置成PatternLayout,是为了配置输出的形式,下面的log4j.appender.console.layout.ConversionPattern是配置的输出格式。具体的查查文档就OK了。
Log4j总的来说,使用起来还是挺方便的,功能挺强大,使用很方便,在程序中,如下:
1.首先要根据配置文件得到一个Logger对象,对于rootLogger,可以采用以下两种方式:
private Logger logger = Logger.getLogger("root");
//the former is the same as the following :
private Logger logger = Logger.getRootLogger(); 


如果是普通的Logger,也有两种方式可供采用:
private Logger logger = Logger.getLogger("testLogger");
//the former is the same as the following :
private Logger logger = Logger.getLogger("log4j.logger.testLogger"); 

2.想要输出不同级别的语句可以采用如下语句:
logger.debug("this is a debug:" + logger.getName());
logger.info("this is a info:" + logger.getName());
logger.warn("this is a warn:" + logger.getName());
logger.error("this is a error:" + logger.getName());
logger.fatal("this is a fatal:" + logger.getName()); 

分享到:
评论
1 楼 xiongbin 2010-07-26  
好文章多多发表

相关推荐

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    总结来说,Log4j2.16.0是一个关键的安全更新,解决了Log4j2框架中的“Log4Shell”漏洞。对于使用若依框架或其他依赖Log4j2的项目,升级到这个版本至关重要,可以避免系统遭受恶意攻击。用户需要下载并正确安装这个...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...

    SpringBoot框架配置log4j和log4j2的配置代码

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    log4j jar包

    总结,Log4j作为Java日志处理的重要工具,其灵活性和强大功能使其在开发和运维工作中占据了重要地位。了解并熟练掌握Log4j的使用,有助于提升开发效率,优化系统的可维护性。然而,随着技术的发展,建议关注更新的...

    log4j-1.2.15.jar

    《深入理解Log4j 1.2.15.jar:日志管理的基石》 在IT行业中,日志管理是一项至关重要的任务,它对于系统监控、故障排查以及性能优化起着不可忽视的作用。Log4j作为Java平台上的一个经典日志记录框架,因其强大的...

    log4j2.17.2

    总结,log4j2.17.2是应对Log4j2 RCE漏洞的重要更新,通过加强安全配置和限制危险功能,为Java应用程序提供了更坚固的安全屏障。对于依赖Log4j2的系统而言,及时升级至该版本是保障系统安全、防范潜在风险的有效手段...

    log4j-1.2.16下载

    总结,Log4j-1.2.16作为一款成熟稳定的日志框架,其强大而灵活的功能使得它在Java开发中有着广泛的应用。理解并掌握其核心组件和配置方式,能够帮助开发者更好地利用日志进行问题排查,提升开发效率。在实际应用中,...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    总结来说,Log4j-1.2.17提供了灵活的日志管理功能,通过配置文件可以定制化日志输出的方式和内容,对于开发、调试和维护Java应用具有极大的帮助。尽管有更新的版本如Log4j2可用,但Log4j 1.x仍然在许多项目中得到...

    Log4j将System.out搞到log4j中输出四

    总结来说,Log4j提供了一套强大的日志管理框架,通过自定义Appender和PrintStream,我们可以轻松地将`System.out.println()`的输出整合到Log4j中,从而实现日志的集中管理和分析。这对于大型项目或者需要严格监控的...

    tomcat下的log4j日志配置

    ### Tomcat 下的 Log4j 日志配置详解 在日常的 Web 开发中,日志记录对于调试问题、监控系统状态以及后期维护来说至关重要。在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发...

    log4j-1.2.17.jar下载

    总结,Log4j-1.2.17.jar作为一款强大的日志工具,通过灵活的配置和丰富的API,为Java开发者提供了强大的日志管理能力。正确理解和运用Log4j,能有效提升开发效率,便于问题排查,是每个Java程序员必备的技能之一。

    log4j.1.2.17

    总结来说,Log4j 1.2.17作为一个成熟的日志框架,提供了一套完整的日志解决方案。正确理解和使用Log4j,不仅能够提升开发效率,还能确保系统的可维护性和稳定性。对于初学者而言,掌握其基本原理和配置技巧,是成为...

    log4j按功能保存日志

    总结,Log4j提供了一种灵活的方式来管理和组织日志,使其能够按功能模块保存,这对于大型项目来说尤其重要。通过正确配置,不仅可以方便地追踪和分析问题,还能优化系统性能,确保日志系统在不影响业务运行的前提下...

    log4j jarjar包

    总结来说,Log4j作为一个强大的日志框架,其强大的功能和高度可定制性使得它在Java项目中占据着重要地位。正确理解和使用log4j-1.2.16.jar,不仅可以提升开发效率,还能为项目的稳定性和维护性提供有力保障。通过...

    log4j_jar包跟教程说明

    总结,Log4j作为Java开发中的常用日志工具,其强大的配置能力使得开发者能够根据项目需求灵活管理日志。理解并熟练使用Log4j,不仅能提升代码可读性,还有助于问题排查和系统监控。同时,关注安全更新,确保日志框架...

    log4j-1.2.17.jar及配置文件

    《log4j-1.2.17.jar及其配置文件详解》 在IT行业中,日志记录是一项至关重要的任务,它能帮助开发者追踪程序运行状况、定位错误和调试问题。Log4j,作为Apache软件基金会的一个开源项目,是Java平台上广泛使用的...

    Log4J完整说明和配置

    ### Log4J完整说明与配置解析 #### 一、Log4J简介 Log4J是Apache的一个开源项目,用于提供灵活的日志记录功能。通过它,开发者能够控制日志信息的输出级别、输出目的地(控制台、文件等)、格式化方式等。本文将...

    log4j2漏洞检测工具

    **Log4j2漏洞检测工具详解** 在当前的IT环境中,安全问题日益凸显,特别是针对开源组件的安全漏洞。Log4j2,一个广泛使用的Java日志框架,最近曝出的重大安全漏洞(CVE-2021-44228,被称为Log4Shell)引起了全球的...

    log4j-2.11.2的jar包和日志门面slf4j的jar包

    总结一下,这个压缩包提供了Log4j 2和SLF4J的核心组件,允许开发者利用SLF4J的简单接口和Log4j 2的强大功能。通过SLF4J的绑定实现,可以在保持代码与日志实现解耦的同时,享受到Log4j 2的高效和灵活。在实际项目中,...

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

Global site tag (gtag.js) - Google Analytics