Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。
核心提示:log4j有两种配置方法,大家熟知的是properties文件但是最近的项目实施中,每次去用户那里装系统,都要苦恼于log文件放在不同位置,要改property文件就要重打jar包,麻烦的紧。而如果采用xml配置的方法,直接放在WEB-INFO下,要修改路径,很方便。查了些资log4j有两种配置方法,大家熟知的是properties文件但是最近的项目实施中,每次去用户那里装系统,都要苦恼于log文件放在不同位置,要改property文件就要重打jar包,麻烦的紧。而如果采用xml配置的方法,直接放在WEB-INFO下,要修改路径,很方便。
第一步:配置log4j.properties在src目录下建立log4j.properties文件,做如下配置
实现逻辑:通过log4j搭建一个日志服务器,将客户端的log发送到服务端,并存放到指定的文件中,使用logstash对其进行监控,通过elasticsearch对其创建索引.
本章目标:掌握log4j的配置及使用了解Java中的基本数据类型与封装数据类型理解Java自动装箱与拆箱的特性掌握使用反射获取类的结构信息掌握使用反射调用类中的方法笔记内容:log4j的配置和使用:定义:Apatch提供的开源的日志包
如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。
Log4j简介Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。
控制台的实现就不说了,这里提供两种实例的配置,一种是输出为文件的(每天输出一个文件),一种为输出到数据库的配置。
log4j用法——记录日志
log4j是一个很好的开源的日志项目,下面就我在实际中使用的一些情况作一个小结(我所写的是以spring为框架的运用,之所以要提到这点,是因为在spring中专门有处理log4j的地方,而我也用到了这些地方)。在使用的第一步你要明白你所发布的web项目所使用的服务器,因为不同的服务器对于使用log4j是有些不同的,我在实际使用中主要是用tomcat和jboss两类,对于tomcat,它本身是没有配置log4j的,所以使用起来和常规的一样;
Log4配置一、常用输出格式%c 列出logger名字空间的全称,如加上{层数}表示出从最内层算起的指定层数的名字空间%X 按MDC(MappedDiagnosticContext,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。
对JAVAWEB应用来说,我们可以有两种方案。一种是配置成log4j.properties,一种是配置成log4j.xml形式。我们这里采用的是log4j.xml形式。
在项目中的classes中新建立一个log4j.properties文件即可;在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是javaproperties(key=value)【Java特性文件(键=值。
分享log4j简介log4j的构成Logger组件介绍Appender组件介绍Layout组件介绍Log4j使用经验Log4j的扩展Log4j介绍1、Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
这篇文章描述了Log4j的API、独一无二的特色和设计原理。Log4j是一个聚集了许多作者劳动成果的开源软件项目。它允许开发人眼以任意的粒度输出日志描述信息。它利用外部的配置文件,在运行时是完全可配置的。最厉害的是,log4j有一条平滑的学习曲线。当心:从用户的反馈表明,它是很容易上瘾的。
最近在搞一个项目架设,希望从构建一个项目方方面面都彻底研究透,增长实战经验。 今天先研究一下日志的构建,这里选择了log4j--java方面比较流行的log框架,功能 很强大,使用起来也很方便了
Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。了解包里情况,可以查看它的API文档:http://www.oschina.net/uploads/doc/commons-logging-1.1.1/index.html , 其中Log(基本记录器)和LogFactory(负责创建Log实例)是两个基类。该API直接提供对下列底层日志记录工具的支持:Jdk14Logger,Log4JLogger,LogKitLogger,NoOpLogger(直接丢弃所有日志信息),还有一个SimpleLog。有必要详细说明一下调用LogFactory.getLog()时发生的事情。调用该函数会启动一个发现过程,即找出必需的底层日志记录功能的实现,具体的发现过程在下面列出: ( 换句话说就是,有这么多工具,common-logging该使用哪一个呢?这取决于系统的设置,common-logging将按以下顺序决定使用哪个日志记录工具:)
“Logger.getLogger(Test.class);”这里的“Test.class”事实上传进去的是Test这个类的完整路径(包名+类名),“test.Test”。这样如果存在“test”这个Log那么Test这个Log就继承它,否则就继承rootLogger。
如果在程序运行中输出大量日志,显然会对应用性能造成一定的影响。Log4J对性能的影响程度取决于以下因素:1.日志输出目的地:例如把日志输出到控制台的速度和输出到文件系统的速度是不一样的。2.日志输出格式:例如采用SimpleLayout输出日志消息比采用Patternlayout简单,因此速度更快。3.日志级别:日志级别设置得越低,输出的日志内容越多,对性能的影响越大。在产品测试阶段,可以把日志级别设置得低一些,便于跟踪和调试程序,而在产品发布阶段,应该把日志级别设置得高一些。