Log4j使用教程

以前都是把所有日志都输出到一个文件下面,今天有个同事问想把某个包下的日志输出到

指定的地方,于是就在网上查了一些资料,总结一下,以免以后用到。

一、log4j是什么? 

Log4j是一个开源的日志记录组件,其产品已经相当的成熟,且使用非常的广泛。在工程中以易用,方便等代替了System.out 等打印语句。

Log4j的目标是:它允许开发人员以任意的精细程度控制哪些日志说明被输出。通过使用外部的配置文件,可以在运行时配置它。

Log4j的具体在http://logging.apache.org/log4j/找到它(有使用的文档说明)。另外,log4j已经被转换成C, C++, C#, Perl, Python, Ruby, 和Eiffel 语言。

二、通常我们建立一个

log4j.properties文件放在src下,编译之后就生成在../web-inf/class/

当然也可以放到其它任何目录,只要该目录被包含到类路径中即可,中定位这个文件,并读入这个文件完成的配置。这个配置文件告诉Log4J以什么样的格式、把什么样的信息、输出到什么地方。

Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局),这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。

综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。

下面对三个组件分别进行说明:

1、Loggers

Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG Log4j有一个规则:

假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。

假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。

其语法表示为:org.apache.log4j.ConsoleAppender(控制台)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

配置时使用方式为:

log4j.appender.appenderName = fully.qualified.name.of.appender.class

log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

这样就为日志的输出提供了相当大的便利。

3、Layouts 

有时用户希望根据自己的喜好格式化自己的日志输出。

Log4j可以在Appenders的后面附加Layouts来完成这个功能。

Layouts提供了四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。

其语法表示为:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

配置时使用方式为:

log4j.appender.appenderName.layout =fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:

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

  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r 输出自应用启动到输出该log信息耗费的毫秒数 
  %c 输出所属的类目,通常就是所在类的全名 
  %t 输出产生该日志事件的线程名 
  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” 
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921 
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

4 . Log4j的配置

以上是从原理方面说明Log4j的使用方法,在具体Java编程使用Log4j可以参照以下示例:

1、建立Logger实例:

语法表示:public static Logger getLogger( String name)

实际使用:static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ())

2、读取配置文件:

获得了Logger的实例之后,接下来将配置Log4j使用环境,语法表示:

或者直接放在src下把log4j.properties文件BasicConfigurator.configure():自动快速地使用缺省Log4j环境。

PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。

DOMConfigurator.configure(String filename):读取XML形式的配置文件。

实际使用:PropertyConfigurator.configure("ServerWithLog4j.properties");

时间: 2024-11-07 10:02:00

Log4j使用教程的相关文章

Java:Apache log4j简明教程(一)

Apache log4j的官方介绍是“log4j is a reliable, fast and flexible logging framework (APIs) written in Java, which is distributed under the Apache Software License. log4j is highly configurable through external configuration files at runtime. It views the log

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

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

Java:Apache log4j简明教程(二)

在上一讲Apache log4j简明教程(一)中介绍了log4j的基本概念,配置文件,以及将日志写入文件的方法,并给出了一个详细的示例.这一讲,我在继续谈一谈如何使用log4j将日志写入MySQL数据库. 将日志写入数据库需要经历(1)建立MySQL数据库日志记录表,(2)配置log4j配置文件,(3)编写Java执行程序三大步骤,下面将详细阐述三个步骤的具体内容. 建立MySQL数据库日志记录表 由于每个人想记录在MySQL数据库中的日志信息的不同,创建的表也各不相同,下面给出一个实用的示例:

最详细的Log4j使用教程

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包. 一.入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2.src同级创建并设置log4j.properties ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬

(转)最详细的Log4j使用教程

来源:http://www.codeceo.com/article/log4j-usage.html 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包. 一.入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2.src同级创建并设置log4j.properties ### 设置#

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

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

log4j入门教程

Log4e是一个免费的Eclipse Plugin.其下载地址为:http://log4e.jayefem.de/index.php/Download 在Eclipse的安装目录下,找到对应的plugins和features文件夹,将解压后得到的两个文件plugins和features下对应的文件拷贝到相应的目录下. 重启Eclispse后,就可以使用Log4e插件了,如果看不到插件,把Eclipse安装目录下的configuration/org.eclipse.update/目录整个删除,重启

简明log4j配置教程

先准备好log4j需要对应的开发包: apache-log4j-extras-1.2.17.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar 然后就是在项目中准备一个log4j.xml开发文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <

JavaWeb学习笔记之Log4j使用教程

一.入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2.src同级创建并设置log4j.properties ### 设置### log4j.rootLogger = debug,stdout,D,E 输出信息到控制抬 log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.s