Log4j主页:http://logging.apache.org/
Log4j是一款强大的日志记录工具,允许用户对日志记录作出灵活的定义。
测试程序:
package org.eleaf.log4j;
import java.io.IOException;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4jTest {
static Logger logger = Logger.getLogger(Log4jTest.class.getClass()); //定义日志记录器
/**
* @param args
*/
public static void main(String[] args) {
Properties property = new Properties();
try {
property.load(Log4jTest.class.getResourceAsStream("log4jtest.properties"));//获取属性文件
} catch (IOException e) {
}
PropertyConfigurator.configure(property);
logger.info
("Begin Log4jTest");
for (int i = 0; i < 10; i++)
{
try
{
int j = random(); //返回一个0-9的随机数。
logger.warn
(i + "/" + j + "=" + (i/j)); //如果分母为0,抛出异常,记录error;否则记录warn.
} catch (Exception e) {
logger.error
("error:" + e.getMessage());
}
}
logger.info
("End Log4jTest");
}
private static int random() //返回一个0-9的随机数。
{
return (int)(Math.random()*10);
}
}
|
log4jtest.properties属性文件:(应与Log4jTest.class在同一目录中)
##info指明日志级别,stdout,file是两个不同的输出目的地。
log4j.rootLogger=info, stdout, file
##输出目的地stdout,即标准输出。
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
##定义输出格式:
log4j.appender.stdout.layout.ConversionPattern=[run:%r][date:%d{yyyy-MM-dd HH:mm:ss}][catalog:%c][priority:%p][message:%m][location:%l][thread:%t]%n
##输出目的地file,输出到文件log4jtest.log。
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log4jtest.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[run:%r][date:%d{yyyy-MM-dd HH:mm:ss}][catalog:%c][priority:%p][message:%m][location:%l][thread:%t]%n
|
控制台标准输出结果:
[run:0][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:INFO][message:Begin Log4jTest][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:22)][thread:main]
[run:31][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:0/8=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:31][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:1/1=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:2/8=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:ERROR][message:error:/ by zero][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:30)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:4/4=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:ERROR][message:error:/ by zero][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:30)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:6/9=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:7/4=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:8/1=8][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:9/9=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:INFO][message:End Log4jTest][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:33)][thread:main]
|
日志文件输出结果:
[run:0][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:INFO
][message:Begin Log4jTest][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:22)][thread:main]
[run:31][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:0/8=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:31][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:1/1=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:2/8=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58
][catalog:java.lang.Class
][priority:ERROR
][message:error:/ by zero
][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:30
)][thread:main
]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:4/4=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main
]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:ERROR][message:error:/ by zero][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:30)][thread:main
]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:6/9=0][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:7/4=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:8/1=8][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:WARN][message:9/9=1][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:28)][thread:main]
[run:47][date:2005-10-18 17:16:58][catalog:java.lang.Class][priority:INFO
][message:End Log4jTest][location:org.eleaf.log4j.Log4jTest.main(Log4jTest.java:33)][thread:main]
|
分享到:
相关推荐
标题"Log4j简单使用"表明我们即将探讨的是日志记录库Log4j的基础应用。Log4j是Apache软件基金会开发的一个开源项目,它为Java应用程序提供了一个灵活的日志系统,允许开发者自定义日志级别、输出格式以及存储位置等...
通过这个简单的Log4jDemo,你可以了解到如何配置Log4j、创建Logger对象,以及如何使用不同的日志级别输出信息。Log4j的灵活性和强大功能使其成为Java开发者必备的工具之一。深入学习和理解Log4j,能够极大地提高你的...
SpringBoot默认使用的是Logback,但通过简单的配置,我们也可以切换到Log4j。 #### 配置Log4j 1. **添加依赖**:首先,在`pom.xml`文件中,添加Log4j的依赖。 ```xml <groupId>org.springframework.boot ...
**标题:“log4j简单的使用”** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位错误,优化性能。Log4j是Apache组织提供的一款强大的日志框架,广泛应用于各种Java项目。本教程将...
Log4j是Apache软件基金会开发的一个用于Java应用程序的日志记录工具,它提供了灵活的日志记录功能,有助于调试、性能分析和系统监控。"API"(Application Programming Interface)通常指的是开发者用来与库或框架...
Log4j是Apache组织开发的一个强大的、灵活的日志记录框架,被广泛应用于各种Java应用中。本文将围绕Log4j的核心配置文件`log4j.properties`进行详细讲解,分为完整版和精简版两个部分。 **1. Log4j基础概念** Log4...
本篇文章将深入探讨Log4j的多个简单实例,帮助你理解和掌握其基本用法。 首先,Log4j由三个主要组件构成:配置器(Configuration)、日志器(Logger)和布局(Layout)。配置器定义了日志信息的输出格式和位置;...
而Log4j,作为Apache软件基金会的一个项目,是Java平台上的一个经典日志工具,其在日志处理方面具有广泛的应用和深远的影响。本文将深入探讨Log4j-1.2.17版本的核心概念、配置方式以及实际应用。 一、Log4j简介 ...
Log4j是由Apache软件基金会开发的一个开源日志组件,主要为Java应用程序提供日志服务。它的设计理念是让日志输出变得简单、灵活且可配置,同时提供了丰富的API,使得开发者可以根据需求定制日志输出格式、级别和目的...
#### 四、log4j的核心组件 log4j的核心组件主要包括**Loggers(记录器)**、**Appenders(输出源)**和**Layouts(布局)**。 1. **Loggers (记录器)**:负责生成日志信息,并决定是否发送日志信息到Appenders。记录器...
本文通过一个简单的示例介绍了Log4J的基本使用方法,包括日志级别的设置、配置文件的编写以及Log4J的继承机制。通过学习这些基础内容,开发者可以轻松地在自己的项目中集成Log4J,从而更好地管理和调试应用程序的...
本测试工程“log4j简单测试工程”旨在帮助理解Log4j的基本用法和配置。 **Log4j组件** 1. **Logger**: 日志记录器,它是日志系统的核心。每个类可以有自己的Logger,用于记录该类的运行日志。Logger通过调用不同的...
在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...
标题中的“log4jdbc-log4j2配置简记”指的是在Java开发中使用log4jdbc-log4j2库来监控和记录SQL查询的过程。log4jdbc是一个开源项目,它允许开发者通过日志系统来追踪数据库操作,而log4j2是log4j的升级版,提供了更...
四、Log4j-1.2.16的优化与维护 1. **日志级别管理**:在生产环境中,通常会将日志级别设置为WARN或ERROR,以减少不必要的日志输出,提高性能。 2. **日志分割**:为了便于管理和分析,可以配置Log4j按日期分割日志...
Log4j之所以受到广泛使用,是因为其具有灵活性、配置简单、扩展性强等特点。它允许开发者自由地控制日志记录的细节,如输出格式、存储位置、输出级别等,这对于大型应用系统的日志管理尤为重要。 以上知识点虽然...
Log4j是Apache组织提供的一款开源的日志记录框架,广泛应用于Java应用程序中。在1.2.17版本中,Log4j为开发者提供了强大的日志处理能力,帮助他们追踪程序运行时的错误、警告和其他相关信息,从而提升软件的可维护性...
《深入理解Log4j:基于log4j-1.2.17.jar的解析与应用》 在Java编程领域,日志记录是一项至关重要的任务,它对于程序的调试、问题定位以及性能分析都有着不可忽视的作用。Log4j,作为Apache软件基金会的一个开源项目...