能够起到的作用:
项目错误信息能及时(实时)反映给项目维护人员以及相关负责人
优点:1,快速响应
2,共同监督
3,邮件正文直接显示了错误信息,拷贝信息比登陆服务器再查找要方便
4,在日志信息继续写入文件的前提下,多了另外一种获取信息的渠道。
补充:log4j可以实现输出到控制台,文件,回滚文件,发送日志邮件,数据库,自定义标签。
输出:该方法可以在日志输出级别为 ERROR
(即代码中调用logger.error("message")方法)时发送邮件
解决:第一步,修改 log4j.properties文件(以SFCS_WEB项目为例)
第二步,利用javamail发送邮件,需要导入包mail.jar和activation.jar
SFCS_WEB项目因为已经存在上述包,因此直接修改配置文件后就可以使用。
该项目开发人员自行配置如下:(下文中我适当添加了一些注释,便于理解)
## ROOT 可以设置日志输出的方式,日志可以依据以下设置同时输出到多种目的地
log4j.rootCategory=INFO,file
## R 将日志写入文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=run.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=INFO
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %x - %m%n
开始修改,修改分为两部分,
第一部分修改log4j.rootCategory=INFO,file------->log4j.rootCategory=INFO,file,MAIL
之后在该文件尾部追加以下内容:
## MAIL
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
# 日志的错误级别
log4j.appender.MAIL.Threshold=ERROR
# 缓存文件大小,日志达到1K时发送Email 可以自定义缓存文件的大小
log4j.appender.MAIL.BufferSize=1
# 发送邮件的服务器
log4j.appender.MAIL.SMTPHost=X.X.X.X(实际SMTP服务器IP或主机名)
# 邮件的标题
log4j.appender.MAIL.Subject=Log4J ErrorMessage
# 发件人地址
log4j.appender.MAIL.From=test@163.com
# 日志邮件的接收者
log4j.appender.MAIL.To=test@163.com
# 日志PatternLayout
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
# 日志的格式
log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n
以上内容为必须的。
如果SMTP服务器需要验证的话,可以添加SMTP服务器用户名和密码,但是以下两项不是所有的LOG4J版本都支持。
需要自己提前确认清楚的。
# SMTP用户名
log4j.appender.MAIL.SMTPUsername=
# SMTP密码
log4j.appender.MAIL.SMTPPassword=
至此,log4j配置文件修改完毕。
以上配置和修改全部经过验证,并且成功发送出ERROR的邮件。
存在问题:中文乱码问题
该信息的产生很多时候是因为logger.error("message")中包含中文字符所致。
如果不想去解决这个问题,以下有网络资料供参考:
原因:配置文件里的layout属性对应的布局模式
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
为处理中文乱码,可以写一个布局模式。
如果你要使用HTMLLayout,就写一个HTMLLayout的子类,覆盖HTMLLayout
的getContentType方法即可。假如我要用 org.apache.log4j.HTMLLayout。
就写一个DefineLayOut 类,代码如下:
package com.sun;
import org.apache.log4j.HTMLLayout;
public class DefineLayOut extends HTMLLayout{
public String getContentType() {
return "text/html;charset=GBK"; //修改编码方式而已!!!
}
}
分享到:
相关推荐
7. **异常处理**:如果邮件发送失败,Log4j通常会记录一条错误日志。为了防止系统被异常邮件发送逻辑阻塞,可以设置重试次数和间隔,或者配置错误处理器来处理发送失败的情况。 8. **集成测试**:在项目部署前,应...
本教程将详细介绍如何配置Log4j来实现日志信息通过电子邮件发送,以便于及时获取系统异常或关键事件的通知。 首先,我们需要理解Log4j的基本架构。Log4j包括三个核心组件:Logger(日志器)、Appender(输出器)和...
在这个特定的配置场景中,我们将探讨如何设置log4j,使其能将不同级别的日志信息分别记录到不同的文件中,并且具备发送邮件通知的能力。 首先,我们需要创建一个log4j的配置文件,通常命名为`log4j.properties`。这...
3. **Appenders**:Appender是Log4j中的输出组件,负责将日志信息发送到指定的位置。常见的Appender有ConsoleAppender(控制台输出)、FileAppender(文件输出)、SMTPAppender(电子邮件通知)和DBAppender(数据库...
总之,Log4j通过其灵活的配置,可以满足不同场景下的日志需求,无论是简单地输出到控制台,还是复杂地发送邮件或存入数据库,都能轻松实现。对于开发和运维人员来说,理解和掌握Log4j的配置方法是十分重要的,它能极...
本篇文章将详细探讨Log4j 配置邮件发送的相关知识点。 1. **邮件通知功能** Log4j 提供了SMTPAppender,用于在特定的日志事件发生时发送电子邮件通知。这非常有用,因为开发者可以在问题发生时立即得到警报,无需...
**日志库Log4j详解** 日志在软件开发中起着至关重要的作用,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并且在生产环境中为运维人员提供宝贵的诊断信息。Log4j,由Apache软件基金会开发,是Java编程...
配置文件(通常是log4j.properties或log4j.xml)决定了日志记录的行为,包括日志级别、输出目的地、格式等。例如,以下是一个简单的log4j.properties配置示例: ``` # 设置全局日志级别为INFO log4j.rootLogger=...
在IT行业中,日志记录是系统监控和故障排查的关键环节,而Log4j作为Java领域广泛应用的日志框架,提供了一种高效、灵活的方式来管理和记录应用的运行情况。本案例主要探讨的是如何通过Log4j配置,使其在特定错误级别...
在".NET log4jdemo"项目中,Log4jDemo可能包含示例代码,展示了如何在.NET应用程序中集成和使用Log4j,以及如何设置和调整日志配置。这可以帮助开发者快速上手,并理解Log4j在.NET环境中的工作原理。 总的来说,Log...
除了默认的`FileAppender`,Log4j还提供了多种Appender,如`ConsoleAppender`(输出到控制台)、`SMTPAppender`(发送电子邮件)、`RollingFileAppender`(文件大小达到一定限制后自动滚动)等。根据实际需求,你...
- **SMTPAppender**:通过电子邮件发送日志。 3. **Layouts (布局)**:定义了日志信息的格式。例如,可以配置日志信息包含时间戳、线程ID、日志级别、消息内容等。 - **常见Layouts**: - **PatternLayout**:...
保存配置后,当系统出现error级别的日志时,Log4j会自动通过SMTPAppender发送一封包含错误信息的电子邮件到指定的收件人。为了确保配置有效,你可以故意触发一个error,然后检查是否收到了邮件。 通过以上配置,...
**Log4j记录日志DEMO** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位错误和调试代码。Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于各种Java应用程序。Log4j以其...
Log4j提供了丰富的日志记录选项,允许开发者根据需求调整日志级别,输出调试信息,追踪程序运行状态,以及在出现问题时提供详细的错误信息,帮助定位问题。 Log4j的核心组件包括三部分:Logger(日志器)、Appender...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的运行情况、调试错误、监控性能等。这个框架由Apache软件基金会开发,是许多Java项目的首选日志解决方案,因为它具有...
Log4j提供了多种Appender实现,如ConsoleAppender(控制台输出)、FileAppender(文件输出)和SMTPAppender(发送邮件)等。 3. **Layout(布局)**:用于格式化日志信息,如PatternLayout(自定义模式)、...
1. **自定义Appender**: 可以扩展Log4j,实现自己的Appender,例如发送日志到邮件、网络服务器等。 2. **过滤器**: 通过Filter接口,可以实现更细粒度的日志控制,比如只输出特定类或包含特定关键字的日志。 3. **...
- **MAIL**:SMTP邮件发送Appender,当日志级别达到FATAL时发送邮件通知。 #### 四、总结 以上配置覆盖了Log4J常用的几种Appender类型及其配置参数,能够满足大多数应用场景的需求。开发者可以根据实际需求调整各个...
- Log4j允许开发者创建自定义的Appender和Layout来满足特定需求,如发送邮件、写入数据库等。 - Appender决定了日志信息的输出位置,而Layout则决定日志的显示格式。 6. **Log4j的最新版本:Log4j 2** - 随着...