Log4J学习【一】Log4J简介

Log4J简介

基本上所有的大型应用,包括我们常用的框架,比如hibernate;spring;struts等,在其内部都做了一定数量的日志信息。为什么要做这些日志信息,在系统中硬编码日志记录信息是调试系统,观察系统运行状态的一种方式。可能大部分程序员都还记得自己最开始写代码的时候,写一个方法总是出错,就喜欢使用System.out.println(“1111111”)之类的代码来查看程序的运行是否按照自己想要的方式在运行,其实这些sysout就是日志记录信息,但使用System.out.println或者System.err.println在做日志的时候有其非常大的局限性:

第一,所有的日志信息输出都是平行的。比如我不能单独的控制只输出某一个或者某几个模块里面的日志调试信息;或者我不能控制只输出某一些日志。

第二,日志信息的输出不能统一控制。比如我不能控制什么时候打印信息,什么时候不打印信息,如果我不想打印任何信息,我只能选择到所有的java文件中去注释这些日志信息。

第三,日志信息的输出方式是固定的。比如,在编码期,就只能输出到eclipse的控制台上,在tomcat环境中就只能输出到tomcat的日志文件中,我不能选择比如输出日志到数据库或者输出日志到Email中等等复杂的控制。

可能有的人会说,为了调试系统,使用System.out.println这些小盆友简直弱爆了,调试系统不都用DEBUG么?可能在编码阶段,用DEBUG更容易迅速的发现和找到错误,但是,如果我想在产品阶段也能跟踪和观察系统的运行状态呢?

所以,综上所述,在编码阶段,往往需要一种统一的硬编码日志方式,来记录程序的运行状态,并且能够提供简单的方式,统一控制日志的输出粒度和输出方式。Log4J就是在这种情况下诞生的,而现在Log4J已经被广泛的采用,成为了最流行的日志框架之一。

Log4J提供了非常简单的使用方式,如果不需要深入去发现Log4J,或者需要自己去扩展Log4J,那么使用起来是非常方便的。而Log4J也非常关注性能的问题,因为在应用中大量的采用日志的方式,会带来一些反面的问题:

1,会使一段代码的篇幅增大,增加阅读的难度;

2,增加代码量,会在一定程度上降低系统运行性能;

而Log4J在性能上不断的优化,使普通的日志输出的性能甚至做到比System.out.println更快。

最后,Log4J提供了非常方便的扩展方式,能让我们非常简单的自定义自己的日志输出级别,日志输出方式等。

在真正进入Log4J的学习之前,我想给所有的中国JAVA程序员说一句话:日志是一种态度。希望大家轻喷。

更多技术问题请访问成都传智播客官网的技术论坛!

Log4J学习【一】Log4J简介,布布扣,bubuko.com

时间: 2024-10-10 21:33:47

Log4J学习【一】Log4J简介的相关文章

log4j学习二-log4j认识

log4j(标准日志工具)三大组件: logger appender layout 例如: ? 1 2 3 log4j.logger.myTest2=INFO,B   log4j.appender.B=org.apache.log4j.ConsoleAppender   log4j.appender.B.layout=org.apache.log4j.PatternLayout  日志级别: off---------------------------------最高等级的,用于关闭所有日志记录

Java进阶学习(2)——log4j的学习和使用

Java进阶学习(2)--log4j的学习和使用 简介Loj4j Log4j的组成 Log4j主要由三大组组件构成: Logger: 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略. Appender: 定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台.文件或网络设备等. Layout: 指定日志信息的输出格式. 说明: 一个Logger可以有多个Appender,这意味着日志信息可以被输出到多个设备上

Log4J学习【二十三】常用的Appender之SocketAppender

前面这几个Appender就是Log4J提供的基于文件系统的Appender.当然,在一些特殊的需要记录到文件的Appender来说,我们只需要选择一个合适的Appender来继承并完成自己的逻辑即可.关于自定义Appender,待会再看.下面来看几个比较特殊的Appender. 前面所有介绍的Appender都有一个共同的特点,就是他们都需要配置一个Layout对象,下面要介绍的这个Appender非常特殊,他本身不需要任何Layout对象,这个Appender就是SocketAppender

log4j学习一:解决系统日志错位问题

这两天,开发的系统遇到了一个非常奇怪的问题,我们的前台程序会将日志时而输出到webapp.log,时而输出到其他日志文件如AlarmThreshold.log中,初看并无规律,但秉着"机器永远不会出错,出错的总是人"这一理念,试着分析原因. log4j是java使用最为广泛的日志框架,它的使用也相对简单,通过配置appender,logger来定义日志的输出位置,输出格式等,也可以将数据输出到控制台,远程文件系统,数据库等.下面给出一个log4.xml的配置文件: <?xml v

log4j学习总结

log4j是一个优秀的日志组件,基本上所有的java开发项目都会用到它.下面将自己学习的一些心得总结一下,方便以后学习. log4j在项目中都不会单独使用,至少是我写过的java项目中没有.一般来说log4j是和commons-logging组件一同使用. commons-logging和log4j的关系就像是jdbc和mysql数据库一样,一个是工厂方法,一个是具体的实现,好处:1,逻辑代码是实现分离2.维护变少.其中第二点是很重要的.配置比单独使用log4j组件还要简单. 先说一下原理. 项

原创Log4j学习----会飞的猪

在前面,我们学习到了关于Log4j的一些知识,如它的构成由三大重要组成部分构成,Logger.Appenders.Layout.相关的作用,这里就不一一介绍了. 如Logger:控制要启用或禁用哪些日志记录语句,并对日志信息进行级别限制:Appenders指定了日志将打印到控制台还是文件中;而Layout则控制日志信息的显示格式. 下面简单介绍下,如何创建Logger对象及配置log4j.properties文件. A).Logger对象的获得或创建:            Logger被指定为

Spring学习8-SSH+Log4j黄金整合

最下面有log4j的详解及配置步骤 步骤一.导入相应的jar包(具体参看下一篇博文) 步骤二.修改WEB.XML文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo

Log4j学习

一般在开发的时候使用debug, 开发完成后使用error 有三个部分构成: Loggers(记录器):日志类别 Appenders (输出源):日志要输出的地方 Layouts(布局):日志以何种形式输出 控制台(Console).文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等. org.apache.log4j.ConsoleAppender(控制台)org.apache.log4j.FileAppender(文件)org.apache.log4

log4j的学习和log4j在程序中使用的加载作用过程

昨天进行代码评审的时候,大家都纠结在了日志信息应该如何输出上,其实我想大家应该一直都在使用log4j来对日志信息进行输出,但是未想应该有很大一部分人对log4j是不了解的,我遇到这个问题的时候也到网上找了一些参考资料,这些参考资料更多的是去介绍以下是怎么使用的.我们知道在使用log4j的时候我们需要将log4j对应的jar包放在lib下  然后将log4j.properties配置文件放在src下,也就是类的根目录下.我看很多的文章都是介绍在log4j.properties的配置文件中是如何配置