很详细一配置:http://blog.csdn.net/azheng270/archive/2008/03/12/2173430.aspx
http://blog.csdn.net/eako/archive/2005/09/23/488099.aspx
实验目的:
1.把FATAL级错误写入2000NT日志
2. WARN,ERROR,FATAL级错误发送email通知管理员
3.其他级别的错误直接在后台输出
实验步骤:
输出到2000NT日志
1.把Log4j压缩包里的NTEventLogAppender.dll拷到WINNT\SYSTEM32目录下
2.写配置文件log4j.properties
# 在2000系统日志输出
log4j.logger.NTlog=FATAL, A8
# APPENDER A8
log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.A8.Source=JavaTest
log4j.appender.A8.layout=org.apache.log4j.PatternLayout
log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
3.调用代码:
Logger logger2 = Logger.getLogger("NTlog"); //要和配置文件中设置的名字相同
logger2.debug("debug!!!");
logger2.info("info!!!");
logger2.warn("warn!!!");
logger2.error("error!!!");
//只有这个错误才会写入2000日志
logger2.fatal("fatal!!!");
发送email通知管理员:
1. 首先下载JavaMail和JAF,
http://java.sun.com/j2ee/ja/javamail/index.html
http://java.sun.com/beans/glasgow/jaf.html
在项目中引用mail.jar和activation.jar。
2. 写配置文件
# 将日志发送到email
log4j.logger.MailLog=WARN,A5
# APPENDER A5
log4j.appender.A5=org.apache.log4j.net.SMTPAppender
log4j.appender.A5.BufferSize=5
log4j.appender.A5.To=ling@yeqiangwei.com
log4j.appender.A5.From=lingerror@yeqiangwei.com
log4j.appender.A5.Subject=ErrorLog
log4j.appender.A5.SMTPHost=smtp.263.net
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
3.调用代码:
//把日志发送到mail
Logger logger3 = Logger.getLogger("MailLog");
logger3.warn("warn!!!");
logger3.error("error!!!");
logger3.fatal("fatal!!!");
在后台输出所有类别的错误:
1. 写配置文件
# 在后台输出
log4j.logger.console=DEBUG, A1
# APPENDER A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
2.调用代码
Logger logger1 = Logger.getLogger("console");
logger1.debug("debug!!!");
logger1.info("info!!!");
logger1.warn("warn!!!");
logger1.error("error!!!");
logger1.fatal("fatal!!!");
--------------------------------------------------------------------
全部配置文件:log4j.properties
# 在后台输出
log4j.logger.console=DEBUG, A1
# APPENDER A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
# 在2000系统日志输出
log4j.logger.NTlog=FATAL, A8
# APPENDER A8
log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.A8.Source=JavaTest
log4j.appender.A8.layout=org.apache.log4j.PatternLayout
log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
# 将日志发送到email
log4j.logger.MailLog=WARN,A5
# APPENDER A5
log4j.appender.A5=org.apache.log4j.net.SMTPAppender
log4j.appender.A5.BufferSize=5
log4j.appender.A5.To=ling@yeqiangwei.com
log4j.appender.A5.From=ling_error@yeqiangwei.com
log4j.appender.A5.Subject=ErrorLog
log4j.appender.A5.SMTPHost=smtp.263.net
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] 7c %3x - %m%n
全部代码:Log4jTest.java
package edu.bcu.Bean;
import org.apache.log4j.*;
//import org.apache.log4j.nt.*;
//import org.apache.log4j.net.*;
public class Log4jTest
{
public static void main(String args[])
{
PropertyConfigurator.configure("log4j.properties");
//在后台输出
Logger logger1 = Logger.getLogger("console");
logger1.debug("debug!!!");
logger1.info("info!!!");
logger1.warn("warn!!!");
logger1.error("error!!!");
logger1.fatal("fatal!!!");
//在NT系统日志输出
Logger logger2 = Logger.getLogger("NTlog");
//NTEventLogAppender nla = new NTEventLogAppender();
logger2.debug("debug!!!");
logger2.info("info!!!");
logger2.warn("warn!!!");
logger2.error("error!!!");
//只有这个错误才会写入2000日志
logger2.fatal("fatal!!!");
//把日志发送到mail
Logger logger3 = Logger.getLogger("MailLog");
//SMTPAppender sa = new SMTPAppender();
logger3.warn("warn!!!");
logger3.error("error!!!");
logger3.fatal("fatal!!!");
}
}
分享到:
相关推荐
**日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者跟踪程序运行...同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。
### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...
### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...
除了基础配置,Log4j还支持一些高级特性: - **打印参数**:在PatternLayout中,可以使用各种占位符来定制输出。例如,`%r` 输出自应用程序启动以来的毫秒数,`%c` 输出日志事件的类目,`%t` 输出线程名,`%d` 输出...
除了基本配置外,Log4j还支持更多高级特性,例如: - **多级过滤**:通过组合多个过滤器实现更复杂的过滤逻辑。 - **动态配置**:利用JNDI或系统属性来动态改变配置参数。 - **自定义布局**:可以通过实现`org....
此外,Log4j还有许多高级特性,如异步日志、MDC(Mapped Diagnostic Context)用于跟踪请求,以及NDC(Nested Diagnostic Context)用于多线程环境下的日志隔离。 在工具有关的部分,有许多IDE和插件支持Log4j的...
2. **配置文件**:Log4j的配置通常通过`log4j.properties`或`log4j.xml`文件进行,其中包含了关于logger级别、appender和layout的定义。 3. **日志级别**:Log4j支持多个日志级别,包括DEBUG、INFO、WARN、ERROR、...
### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...
《log4j-1.2.17.jar及其配置文件详解》 在IT行业中,日志记录是一项至关重要的任务,它能帮助开发者追踪程序运行状况、定位错误和调试问题。Log4j,作为Apache软件基金会的一个开源项目,是Java平台上广泛使用的...
Log4j2作为Log4j的升级版本,它在性能、可配置性和可扩展性上有了显著提升,同时也修复了Log4j的一些已知问题。Fastjson则是阿里巴巴的一个开源项目,它提供了快速的JSON解析和生成性能,广泛应用于Java应用程序的...
### Log4j基本配置详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件还是其他地方,还可以控制每一条日志的输出格式;通过定义每一条日志信息...
#### (五)高级配置示例 在实际开发中,可能还会遇到更为复杂的情况,比如需要为特定的包或类配置额外的日志Appender。 **配置示例**: ```properties log4j.logger.package_a=info,log_a log4j.appender.log_a=...
在实际开发中,可以根据项目规模和需求选择是否仿造Log4j,也可以直接使用成熟的日志库,如Logback(Log4j的后继者)或SLF4J(Simple Logging Facade for Java),它们通常提供了更多高级特性并经过了广泛的社区测试...
**日志框架Log4j详解及配置实例** Log4j是Apache组织开发的一款广泛应用的日志记录框架,尤其在Java应用程序中被广泛采用。它提供了一种灵活、强大的方式来记录程序运行过程中的各种信息,包括错误、警告、调试信息...
配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...
配置Log4j主要通过log4j.properties或log4j.xml文件进行,定义Logger的级别、Appender的目标和Layout的格式。例如: ```properties log4j.rootLogger=DEBUG, FILE log4j.appender.FILE=org.apache.log4j....
四、Log4j的高级特性 1. **异步日志记录**:Log4j支持异步日志记录,通过AsyncAppender可以在不阻塞主线程的情况下高效地处理日志。 2. **自定义Appender和Layout**:如果内置的Appender和Layout无法满足需求,...
Log4j 的配置主要通过 `log4j.properties` 或 `log4j.xml` 文件完成,这里我们以 `log4j.properties` 文件为例进行说明。 1. **配置Appender** - **Console Appender**:将日志输出到控制台。 ```properties log...
**四、Log4j2的高级特性** 1. **异步日志记录**: Log4j2支持异步日志处理,通过使用LMAX Disruptor库,可以极大地提高日志性能。 2. **动态日志配置**: 可以在运行时通过JMX或API修改日志配置,无需重启应用程序。 ...
3. **高级配置** - **过滤器(Filter)**:允许根据特定条件过滤日志事件,如`log4j.filter Threshold=ERROR`只输出ERROR及以上级别的日志。 - **自定义日志等级**:可以通过定义新的日志级别来满足特殊需求,例如...