1.Logger
类
通过
Logger
类的静态方法
Logger.getRootLogger
得到
RootLogger
。所有其他的
loggers
是通过静态方法
Logger.getLogger
来实例化并获取的。这个方法
Logger.getLogger
把所想要的
logger
的名字作为参数。
Logger
类的一些其它基本方法在下面列出:
package
org.apache.log4j;
public
class
Logger {
//
Creation and retrieval methods:
public
static
Logger getRootLogger();
public
static
Logger getLogger(String
name);
//
printing methods:
public
void
debug(Object message);
public
void
info(Object message);
public
void
warn(Object message);
public
void
error(Object message);
public
void
fatal(Object message);
//
generic printing method:
public
void
log(Level l, Object
message);
}
|
2. getLogger
方法
以一样的参数名字调用
getLogger
方法,返回的
reference
总是指向完全相同的
logger
对象。例如,在这里:
Logger
x
=
Logger.getLogger
(
"wombat"
);
Logger
y
= Logger.getLogger
(
"wombat"
);
|
x
和
y
指向完全相同的
logger
对象。
3.Log4j
使用流程
1
)根据配置文件初始化
log4j
log4j
可以使用
3
种配置器来初始化:
BasicConfigurator,DOMConfigurator,PropertyConfigurator
。
这里用的是
PropertyConfigurator
。使用
PropertyConfigurator
适用于所有的系统。如下的语句。
PropertyConfigurator.configure(
"log4j.properties"
);
|
就以
log4j.properties
为配置文件初始化好了
log4j
环境。对于一般的
java project
可以不使用上面的语句初始化
log4j
,
log4j
会自动在
classpath
下,找到配置文件并初始
化。如果
log4j
不
能自动初始化配置文件,那么就需要用上面的方法进行初始化。
注意:初始化配置文件,最好只在系统启动的时候执行一次,如果执行多次,一是浪费资源,二就是对于
老版本的
log4j
,
使用
DailyRollingFileAppender
时,可能会出现问题。
2
)导入
org.apache.log4j.Logger;
及相关包。
3
)在需要使用
log4j
的地方获取
Log
实例。
private
static
Logger log = Logger.getLogger(
"MyCLASS.class"
);
|
4
)使用
Logger
对象的
debug,info,fatal...
方法。
log.debug(
"it is the debug info"
);
|
4.Log4j
使用示例
Test.java
import
org.apache.log4j.Logger;
public
class
Test {
static
Logger
log
= Logger.getLogger
(Test.
class
);
public
void
log(){
log
.debug(
"Debug info."
);
log
.info(
"Info info"
);
log
.warn(
"Warn info"
);
log
.error(
"Error info"
);
log
.fatal(
"Fatal info"
);
}
public
static
void
main(String[]
args) {
Test
test =
new
Test();
test.log();
}
}
|
Log4j.properties
(具体配置属性定义见《
Log4j
配置说明》)
log4j.rootLogger=info,
stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to
output the caller's file
name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p
[%t] (%F:%L) - %m%n
|
结
果
INFO [main] (
Test.java:16
) -
Info
info
WARN [main] (
Test.java:17
) -
Warn
info
ERROR [main] (
Test.java:18
) -
Error
info
FATAL
[main] (
Test.java:19
) - Fatal info
分
析:
Test.java
“
Logger.getLogger(Test.class);
”这里的“
Test.class
”事实上传进去的是
Test
这个类的完整路径(包名
+
类名),“
test.Test
”。这样如果存在“
test
”这个
Log
那么
Test
这个
Log
就继承它,否则就继承
rootLogger
。
Log4j.properties
第一行,配置
log4j.rootLogger
。应为它是根,必须配置,否则别的
Log
无法继承。其他的
Log
可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种(
Log4j
默认把日志信息分为五个等级
debug
< info < warn < error < fatal
),后面的参数都是让
Log
知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:
log4j.rootLogger=info,
stdout
|
这里的
info
表示,该
Log
的日志级别为
info
,所有级别小于
info
的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中:
log
.debug(
"Debug
info."
);
|
这句话是不起作用的,因为
debug
的级别小于
info
。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码。
配置
stdout
,这个名字是随便取的,你可以叫它
A
:
log4j.appender.A=org.apache.log4j.ConsoleAppender
|
那么上面的
rootLogger
的参数
stdout
也要改成
A
,其他用到的地方当然也要改。这里的关键不是名字,而是
appender
类型,比如这里的“
ConsoleAppender
”,指输出
到
Console
。
后面两行都是设置日志格式的。
分享到:
相关推荐
Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了强大的日志记录功能。Log4j 的主要优点在于它的灵活性和可配置性,允许开发者根据需要调整日志的输出目的地、格式以及级别。 **配置Log4j** ...
Apache Log4j2 是一个广泛使用的Java日志框架,它为开发者提供了强大的日志记录功能。然而,在2021年12月初,一个严重的安全漏洞(CVE-2021-44228)被公开,这个漏洞被称为"Log4Shell",允许攻击者通过注入恶意的...
在Java代码中,你可以通过调用`org.apache.logging.log4j.LogManager.getLogger()`获取一个Logger实例,然后使用它来记录日志信息。 总的来说,Apache Log4j是一个强大且灵活的日志框架,对于开发人员来说,理解和...
根据提供的信息,我们可以深入探讨《Pro Apache Log4j 第二版》这本书的相关知识点。此书由Samudra Gupta编写,并于2005年出版,是关于Apache Log4j的一个专业指南。 ### 一、Apache Log4j简介 Apache Log4j是一个...
4. 强烈建议用户升级:由于Log4j2的广泛使用,官方强烈建议所有用户尽快将他们的Log4j2实例升级到2.16.0或更高版本,以确保系统的安全性。 在使用这个升级包时,你需要先解压缩"apache-log4j-2.16.0-bin"文件,然后...
### Log4j 使用实例详解 #### 一、Log4j简介 Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、...
Apache Log4j 是一个广泛使用的Java日志框架,它的核心功能是记录应用程序中的事件和错误信息,便于跟踪问题、分析性能以及调试。Log4j 提供了一种灵活、高效的日志记录机制,允许开发者定制日志输出的方式、位置和...
在使用过程中,开发者可以通过文档了解如何创建自定义的Appender、Filter和Layout,以及如何在代码中与Log4j交互,如获取Logger实例、调用不同级别的记录方法(如`logger.debug()`、`logger.info()`等)。...
在实际使用中,Log4J可以通过XML或properties文件进行配置,例如在`log4j.xml`中,你可以定义多个Appender,每个Appender有不同的输出目标和Layout,然后通过`<logger>`元素为不同的包或类设置日志级别。例如: ```...
这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们如何将ACL与Log4j集成,以便在我们的Java应用中使用Log4j作为日志记录器。Log4j是一款功能强大的日志框架,提供灵活的日志配置和多种输出选项,如...
Log4j是一款广泛使用的开源日志框架,由Apache软件基金会开发。本文将深入探讨Log4j的基本概念、配置与使用方法。 1. **什么是Log4j** Log4j是一个基于Java的日志记录工具,它提供了灵活的控制来记录日志信息,...
Apache Log4j 2.0 是一个广泛使用的Java日志框架,它提供了强大的日志记录功能,便于开发者在应用程序中追踪、记录和分析各种信息。这个压缩包"apache-log4j-2.0-alpha1-bin.tar"包含了Log4j 2.0的第一个alpha版本的...
Apache Log4j是Java平台上的一个著名日志...在使用"apache-log4j-1.2.17"压缩包时,开发者应确保理解日志框架的基本概念,正确配置和导入库,以实现高效、可控的日志管理,同时关注安全更新,避免因旧版本带来的风险。
这个"log4j使用实例.zip"压缩包包含了关于如何在Java项目中配置和使用Log4j的示例代码,非常适合Java后端初学者学习。 首先,Log4j的核心组件包括Logger、Appender和Layout。Logger是日志信息的生产者,负责生成...
Log4j是Apache组织提供的一款广泛使用的Java日志框架,它具有高效、灵活、可配置等特点。本篇文章将深入探讨Log4j的使用,并通过实例进行讲解。 ### 1. Log4j的基本概念 - **Logger**: 日志器是Log4j的核心组件,...
1. **识别系统中的Log4j2实例**:首先,需要识别系统中所有使用Log4j2的组件和应用程序,包括内部开发的项目以及第三方库。 2. **版本确认**:然后,通过查看项目配置文件(如`log4j2.xml`或`log4j2.json`)或依赖...
Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了一种灵活且高效的日志记录解决方案。Log4j 支持多种输出方式,包括控制台、文件、数据库等,并允许自定义日志级别和格式,以满足不同开发需求。 ...
这些接口包括最基本的`org.apache.logging.log4j.Logger`,它是所有日志记录的起点,以及`org.apache.logging.log4j.LogManager`,它负责管理日志配置和日志器实例。API库的主要目标是与实现层解耦,允许开发者在不...
Apache Log4j 2.3 是一个广泛使用的Java日志框架,它提供了强大的日志记录功能,便于开发者在应用程序中追踪、控制和调试信息。这个jar包是专门为Java开发人员设计的,允许他们灵活地控制日志信息的输出格式、级别和...
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 在这个例子中,我们创建了一个名为`FILE`的Appender,它将日志...