log4j入门教程

Log4e是一个免费的Eclipse Plugin。其下载地址为:http://log4e.jayefem.de/index.php/Download

在Eclipse的安装目录下,找到对应的plugins和features文件夹,将解压后得到的两个文件plugins和features下对应的文件拷贝到相应的目录下。

重启Eclispse后,就可以使用Log4e插件了,如果看不到插件,把Eclipse安装目录下的configuration/org.eclipse.update/目录整个删除,重启Eclipse。

log4j:log for java

日志框架的作用:

1、程序运行中,传入的参数正不正确

2、软件的稳定期内,记录用户的每一步操作

3、控制目的地:打印到控制台、文件、db

4、日志级别:某一句输出设置一定的级别,如果控制大于等于这个级别,就输出

5、格式:在输出的主信息外,还可以添加附加信息

1、每一行都是键值对,key=value

2、#表示注释

3、properties文件本身不支持中文,eclipse装了properdit插件,所以支持中文

log4j由三个重要的组件构成:日志信息的输出格式,日志信息的优先级,日志信息的输出目的地。日志信息的优先级用来指定这条日志信息的重要程度:日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式控制了日志信息的显示内容。

  1. 第一步添加log4j.jar包。
  2. 解析log4j.properties文件是如何配置的?配置文件如下:

5p%用五个空格补齐。tim.log是相对路径。

最常用的PatternLayout

%m输出代码中指定的消息

%p输出优先级,即DEBUG、INFO、WARN、ERROR、FATAL

%r输出自应用启动到输出该log信息耗费的毫秒数

%c输出所属的类目,通常就是所在类的全名

%t输出产生该日志事件的线程名

%n输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy-MM-dd
HH:mm:ss} %5p {%C:%M} - %m%n,输出类似:2016-01-06
00:05:54 DEBUG { com. chen. test. testLog4j : main } – 我是信息

几个重要原则:

  1. 级别的控制,就是只要大于等于指定的控制级别,就可以输出
  2. 如果有多个logger,都可以匹配输出,则每个logger都产生输出,其中根logger匹配所有的输出,而级别控制来源于最详细的logger。

范例1:如果对一个logger设置了级别是info,那么打印出来的是大于等于info的级别。

结果只打印出大于等于info级别的日志:

范例2:如果一条信息,设置了多个logger托管,level取最详细的,appernder各自输出,也就是说,最详细的说了算。

Log4j.logger.com.chen覆盖了log4j.logger.com的debug,两个logger打印出来的等级都必须是大于等于info。

Log4j.rootLogger = debug.timchen.File, timchen.Console

其中,rootLogger表示根logger,相应Classpath路径下所有的类。如:

Appender、Layout、Logger三者之间的关系:

  1. 每个Appender都要引用自己的layout
  2. 每个Logger都可以指定一个级别,同时引用多个Appender;而每一个Appender也同时被多个Logger引用。

在java中使用log4j中要注意的小问题:

看似奇怪的重复级别判断:我们在看一些成熟框架的源代码中,经常看到如下代码:

为什么不直接looger.debug(“debug:”+name)呢?因为在配置文件中虽然可以使用控制级别为比debug级别更高的级别,而不输出debug信息;但是这里的字符连接操作仍然会影响运行效率;如果先判断当前的logger的级别,如果级别不合适的话,连这句话都可以不做了。

Log4j.xml和log4j.properties同时存在时,以log4j.xml为准

Slf4j简介

简单日记门面(simple logging Fa?ade for java)SLF4J是为各种logging
APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的logging APIs实现。

准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的fa?ade,允许用户在部署最终应用时方便的变更其日志系统。

在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。比如:选择JDK自带的日志系统,则需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可(当然也需要log4j的jar包及配置文件)。

我们的类不在直接与log4j的类或者logging类相接触,而是多了sl4j-api,和相应的日志系统的适配器的jar包,其流图如下:

在下载的sl4j的文件下找到,这两个jar包,并且添加到lib下:

当然,如果是用lo4j,则原有的log4j的jar包也要添加:

原有的通过Log4j的new logger的写法如下:

利用slf4j改写后,注意其中的两个引入包:

时间: 2024-08-03 09:30:29

log4j入门教程的相关文章

Log4J入门教程(二) 参数讲解

继续接着Log4J入门教程(一)中的例子进行讲解,其中log4j.properties中的内容为    Log4j的三个重要组件—— Loggers, Appenders, Layouts ,这三个组件协同的工作,使得开发者能够依据信息类别和级别去纪录信息,并能够运行期间,控制信息记录的方式已经日志存放地点. Log4j中有三个主要的组件,它们分别是 Logger.Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名

Log4J入门教程(一) 入门例程

Log4J的入门简介学习 简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 此外,通过Log4j其他语言接口,您可以在C.C++..Net.PL/SQL

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

<zz>bower入门教程

from http://www.cnblogs.com/xiaokai0203/p/5891927.html bower入门教程 什么是bower Bower是一个客户端技术的软件包管理器,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.其他一些建立在Bower基础之上的开发工具,如YeoMan和Grunt,这个会在以后的文章中介绍. 准备工作 安装node环境:node.js 安装Git,bower从远程git仓库获取代码包:git简易指南 安装bower 使用

【转载】GBDT(MART) 迭代决策树入门教程 | 简介

      转载地址:http://blog.csdn.net/w28971023/article/details/8240756        GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案.它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法.近些年更因为被用于搜索排

SEO学习步骤总结入门教程

在这里,简单的把SEO的学习步骤说了一下,今天我们一起来把SEO学习步骤每一步的主要内容拿出来重点强调一下并做个总结.  定位好网站内容以后把你所想做排名的关键词定位好,关键词里包括了主关键词和长尾关键词.这里重点强调了不可以忽略长尾关键词的作用.  对于一个好的网站结构可以让搜索引擎蜘蛛顺利的抓取我网站的内容,进而达到被收录的目的.比较有利于蜘蛛抓取的网站结构,一般来说,收录数量相对来说会比较多.,只有让搜索引擎收录你网站页面那搜索引擎才会释放出来,这样网站关键词才可能有排名.  这里重点要注

Android基础入门教程——10.12 传感器专题(3)——加速度-陀螺仪传感器

Android基础入门教程--10.12 传感器专题(3)--加速度/陀螺仪传感器 标签(空格分隔): Android基础入门教程 本节引言: 本节继续来扣Android中的传感器,本节带来的是加速度传感器(Accelerometer sensor)以及 陀螺仪传感器(Gyroscope sensor),和上一节的方向传感器一样有着x,y,z 三个轴, 还是要说一点:x,y轴的坐标要和绘图那里的x,y轴区分开来!传感器的是以左下角 为原点的!x向右,y向上!好的,带着我们的套路来学本节的传感器吧

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert