1.logger.debug("Debug ...")或logger.info("Info ...")或
logger.warn("Warn ...")或logger.error("Error ...") 都只输出对应的信息,即logger.debug只输出debug的信息,info只输出info的信息。
而log4j.properties中配置“log4j.rootLogger=dubug, console, logfile”的作用是控制显示出来的信息。作用:当同时有logger.debug("Debug ...")和logger.error("Error ...")时,log4j.properties配置成“log4j.rootLogger=error, console, logfile”,这样显示台之显示error的信息,而不显示Debug的信息。
2.级别顺序(低到高):
DEBUG < INFO < WARN < ERROR < FATAL
显示台显示的内容是:大于等于log4j.properties中配置的信息。
全文如下:
先写一个例子
package usual;
import org.apache.log4j.*;
import org.apache.log4j.SimpleLayout;
public class testlog {
static Logger logger = Logger.getLogger(testlog.class.getName());
public static void main(String[] args) {
PropertyConfigurator pc = new PropertyConfigurator();
pc.configure("config/log4j.properties");// (其中config是你保存log4j.properties的目录)
logger.debug("Debug ...");
logger.info("Info ...");
logger.warn("Warn ...");
logger.error("Error ...");
}
}
static Logger logger = Logger.getLogger(testlog.class.getName());就是创建一个属於testlog类的Logger对象,创建时要告知Logger你当前的Class是什么,
logger.debug就是输出debug的信息
logger.info就是输出提示信息
logger.warn就是显示警告信息
logger.error就是显示错误信息
log4j可以让你把要写的东西分成4级 (其实有更多级,你可以自己定义,比如叫: 三级++),这些级别叫优先权 (Priority),这里四个优先权就是debug, info, warn, 和error,优先权从低到高,log4j能让你控制显示哪些优先权的信息。log4j也让你要写哪就哪,可以是屏幕,可以是一个文件,甚至是一个Email,一个XML,一个Socket,等等。这些控制都在一个小文件里,叫log4j.properties
(其实你可以用其它名字,这里是默认名)。这个文件在工程目录下。以下是log4j.properties的内容:
#### Use one appender to log to console
log4j.rootCategory=DEBUG, stdout
#### Appender writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p(%F:%L) - %m%n
就是说我要显示所有优先权等於和高于Debug的信息,所以上面那个Class会显示Debug ...,Info ...,Warn ...,Error ...所有信息。
下面的三行说,这个stdout输出端其实是标准输出Console,也就是屏幕。输出的格式是Pattern。转换方式是%5p(%F:%L) - %m%n,即前五格用来显示优先权,再显示当前的文件名,加当前的行数。最后是logger.debug()或logger.info()或logger.warn()或logger.error()里的信息。%n表示回车空行。
运行程序,最后输出的是:
DEBUG(LogTest.java:9) - Debug ...
INFO(LogTest.java:10) - Info ...
WARN(LogTest.java:11) - Warn ...
ERROR(LogTest.java:12) - Error ...
log4j的参数配置说明 |
|
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
一、定义配置文件
其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以e几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
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)
二、在代码中使用Log4j
1.得到记录器
使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name)
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
2.读取配置文件
当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
3.插入记录信息(格式化日志信息)
当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
|
分享到:
相关推荐
要实现动态设置Log4j日志级别,通常有以下几种方法: 1. **通过配置文件**:最常见的方式是通过修改log4j.properties或log4j.xml配置文件。例如,你可以将某个类或整个包的日志级别设置为WARN: ```xml ```...
在深入探讨Log4j日志等级之前,我们首先需要了解Log4j是什么。Log4j是Apache的一个开源项目,用于Java应用程序的日志记录。它提供了一种高度灵活且功能强大的日志解决方案,允许开发者和系统管理员自定义日志级别、...
Log4j 日志级别详解 Log4j 是 Java 中一种流行的日志记录工具,用于记录应用程序的运行过程和错误信息。Log4j 的核心组件是日志记录器(Logger),它可以根据不同的级别记录日志信息。在 Log4j 中,日志记录器的...
四、在 Maven 项目中引入 Log4j 依赖 在 Maven 项目中,需要引入 Log4j 依赖项,以便使用 Log4j。下面是一个基本的 Maven 依赖项配置: ``` <groupId>log4j <artifactId>log4j <version>1.2.16 ``` 这个配置...
4. **创建 log4j.properties 文件**:在 `WEB-INF/classes` 目录下创建 `log4j.properties` 文件,并指定日志的级别、输出目的地等。 ```properties log4j.rootLogger=DEBUG, A1 log4j.appender.A1=org.apache....
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...
### Log4j日志配置详解 #### 一、概述 Log4j 是一个基于 Java 的开源日志记录框架,由 Apache 软件基金会维护。它允许开发人员根据等级记录日志信息,使得用户能够控制日志信息的记录级别及去向。本文将通过一份...
### Log4j日志级别详细介绍 #### Log4j概述 Log4j是Apache基金会下的一个开源项目,它是一个基于Java的日志组件,在众多Java日志框架中占据着重要的位置。Log4j因其丰富的特性和易用性而在企业级应用开发中被广泛...
Log4j 是一款广泛使用的Java日志记录框架,它提供了灵活的日志配置和丰富的日志级别,便于开发者调试和监控应用程序。在Java开发过程中,如果遇到"log4j:WARN Please initialize the log4j system properly"这样的...
Log4j作为Java领域广泛应用的日志框架,提供了强大的日志记录功能和灵活的配置。本文将深入探讨log4j的配置以及配置文件的详解。** 首先,我们要理解什么是`log4j.properties`文件。这是log4j框架的配置文件,使用...
本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...
通过`log4j.properties`或`log4j.xml`配置文件,可以定制日志输出的级别、目的地和格式,从而满足不同项目的需求。在实际开发中,正确地使用和配置`log4j`能显著提升问题排查和系统监控的效率。
《深入理解Log4j日志打印》 在Java开发领域,日志打印是不可或缺的一环,它对于系统调试、性能监控、故障排查等都起着至关重要的作用。Log4j作为Java中最常用的日志框架之一,深受广大开发者喜爱。本文将深入探讨...
在Log4j中,控制日志级别主要通过配置文件`log4j.properties`或`log4j.xml`来实现。在提供的压缩包`log4j-demo`中,我们可以找到这样的配置文件。例如,如果我们想要控制特定类`com.example.MyClass`的日志级别为...
Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...
《深入理解Log4j日志框架》 在Java开发领域,日志系统是不可或缺的工具,它用于记录程序运行过程中的各种信息,帮助开发者在问题出现时定位和解决问题。Log4j作为Apache软件基金会的一个开源项目,是Java世界中最...
1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...
在“log4j日志.zip”压缩包中,包含的可能是Log4j的配置文件(如log4j.properties或log4j.xml)。这个文件定义了日志的级别、输出位置和格式。例如: ```properties # log4j.properties 示例 log4j.rootLogger=...
logstash采集log4j日志发送到es配置文件,可以把日志根据日志级别区分开,一个级别一条日志是es中的一条数据