http://jlk.iteye.com/blog/354216
项目上线后,运行时往往也还会有异常发生,在异常抛出时,希望即时的得到反馈。所以需要配置LOG4J
的发送EMAIL
功能。
项目中原来使用的的Log4j
版本为1.2.9 ,但此版本并不支持邮件服务的认证功能 ,遂重新下载了最新的版本1.2.14 ,查看源代码
此版本支持认证功能 ,下面是 log4j
.properties 的具体配置 :
## ROOT
log4j
.rootLogger=INFO,CONSOLE,A_default,MAIL
## CONSOLE
log4j
.appender.CONSOLE=org.apache.log4j
.ConsoleAppender
log4j
.appender.Threshold=INFO
log4j
.appender.CONSOLE.Target=System.out
log4j
.appender.CONSOLE.layout=org.apache.log4j
.PatternLayout
#log4j
.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j
.appender.CONSOLE.layout.ConversionPattern=[调试信息]%-5p %c %x - %m%n
## A_default
log4j
.appender.A_default=org.apache.log4j
.RollingFileAppender
log4j
.appender.A_default.Threshold=INFO
log4j
.appender.A_default.File=${webframe.root}/WEB-INF/logs/railstone.log
log4j
.appender.A_default.MaxFileSize=4000KB
log4j
.appender.A_default.MaxBackupIndex=10
log4j
.appender.A_default.layout=org.apache.log4j
.PatternLayout
log4j
.appender.A_default.layout.ConversionPattern=[调试信息]%-5p %c %x - %m%n
## MAIL
log4j
.appender.MAIL=org.apache.log4j
.net.SMTPAppender
# 日志的错误级别
log4j
.appender.MAIL.Threshold=ERROR
# 缓存文件大小,日志达到512K时发送Email
log4j
.appender.MAIL.BufferSize=512
# 发送邮件的服务器
log4j
.appender.MAIL.SMTPHost=smtp.163.com
# 邮件的标题
log4j
.appender.MAIL.Subject=Log4J
ErrorMessage
# 用户名
log4j
.appender.MAIL.SMTPUsername=邮箱用户名
# 密码
log4j
.appender.MAIL.SMTPPassword=邮箱密码
# 发件人地址
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
在配置完毕后,发现 即使是将 log4j
.appender.MAIL.Threshold=ERROR
修改为 INFO 级别 ,也只有在日志输出级别为 ERROR (即代码中调用logger.error("message")方法)时才会发送邮件,不知道是什么原因,
Log4J
发日志邮件给多个接收者及标题、正文乱码问题
利用javamail发送邮件,你需要导入包mail.jar和activation.jar这两个包 ,否则是没法发邮件的 ,下边配置文件里绿色行显示的就是发给两个接收者ac和ae。
这里会出现中文乱码问题,主要有两方面的乱码,一是标题乱码;二是正文乱码。下边具体说明这两种乱码的解决方案。
一、 标题乱码
Log4J
日志邮件的标题在配置文件log4j
.properties里设定,如下
log4j
.appender.MAIL=org.apache.log4j
.net.SMTPAppender
log4j
.appender.MAIL.Threshold=FATAL
log4j
.appender.MAIL.BufferSize=10
log4j
.appender.MAIL.From=ab@163.com
log4j
.appender.MAIL.SMTPHost=smtp@163.com
log4j
.appender.MAIL.Subject= Log4J
提醒您:系统发生了严重错误
log4j
.appender.MAIL.To=ac
@163.com,ae@163.com
log4j
.appender.MAIL.layout=com.sun.DefineLayOut
log4j
.appender.MAIL.layout.LocationInfo=true
灰色的行就是标题,log4J
配置文件默认的读取方式是ISO-88591,遇到中文会出现乱码,我们可以把这个配置文件log4j
.properties用jdk的工具native2asii转换一下编码方式。
命令:native2asii log4j
.properties log4jxx.properties
把这个log4jxx.properties改名为log4j
.properties取代原来的log4j
.properties就ok了。
灰色行重新编码后是:
log4j
.appender.MAIL.Subject=Log4J
\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef
二、 正文乱码
正文乱码,解决也比较简单。阅读Log4J
的源码类SMTPAppender,我们可以发现sendBuffer()方法中有这样一句:
part.setContent(sbuf.toString(), layout.getContentType());
我们继续追踪发现layout就是配置文件里的layout属性对应的布局模式。但是这些布局模式都是继承自Layout,而contentType是只
可通过getContentType方法取得,不能修改。所有的布局模式getContentType方法返回的都是”text/plain”;
为处理中文乱码,我们可以写一个布局模式。如果你要使用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";
}
}
对应的配置文件设置如黄色行所示。
分享到:
相关推荐
在本实例中,我们将探讨如何使用Log4j配置来实现当系统出现error时自动发送电子邮件的功能。 首先,我们需要了解Log4j的基本配置结构。一个典型的Log4j配置文件(通常是`log4j.properties`或`log4j.xml`)包含了...
2. **Log4j配置**:要使用Log4j发送邮件,首先需要在项目的配置文件(通常是`log4j.properties`或`log4j.xml`)中添加适当的配置,包括设置SMTP服务器信息、发件人和收件人地址,以及触发发送邮件的日志级别。...
### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能...
在这个特定的配置场景中,我们将探讨如何设置log4j,使其能将不同级别的日志信息分别记录到不同的文件中,并且具备发送邮件通知的能力。 首先,我们需要创建一个log4j的配置文件,通常命名为`log4j.properties`。这...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的...它通过`log4j.jar`提供核心功能,通过`log4j.properties`进行个性化配置,为开发者提供了一套完整的日志解决方案。
Log4j 是一个广泛使用的日志记录框架,尤其在Java应用...综上所述,Log4j 的邮件配置是一项实用的功能,能够帮助开发者及时获取错误和警告信息。通过理解并正确配置SMTPAppender,我们可以实现高效的日志管理和监控。
### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...
总之,Log4j通过其灵活的配置,可以满足不同场景下的日志需求,无论是简单地输出到控制台,还是复杂地发送邮件或存入数据库,都能轻松实现。对于开发和运维人员来说,理解和掌握Log4j的配置方法是十分重要的,它能极...
这样,一旦日志达到ERROR级别,Log4j就会自动发送包含日志信息的邮件。 三、HTML格式的日志输出 HTML格式的日志对于查看和分析日志非常友好,可以直观地呈现层次结构和颜色编码。我们可以使用HTMLLayout类创建HTML...
配置Log4j发送日志邮件主要涉及以下几个步骤: 1. **配置log4j.properties文件**:这是Log4j的配置文件,我们需要在这里定义Appender。添加以下内容: ```properties # 定义一个SMTP Appender log4j.appender.SMTP...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
2. **Log4j配置文件(log4j.properties或log4j.xml)** - 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j....
在"log4j发邮件"这个场景下,我们将重点关注配置Appender为SMTP电子邮件服务。Log4j提供SMTPAppender来实现这个功能。下面是一个基本的Log4j配置示例: ```xml ...
本文将深入探讨Log4j发送邮件的功能,以及涉及到的log4j-1.2.16.jar、mail.jar和activation.jar这三个关键文件。 Log4j是一个开源的日志框架,最初由Apache软件基金会开发。它为Java应用程序提供了灵活的日志记录...
### Log4J完整说明与配置解析 #### 一、Log4J简介 Log4J是Apache的一个开源项目,用于提供灵活的日志记录功能。通过它,开发者能够控制日志信息的输出级别、输出目的地(控制台、文件等)、格式化方式等。本文将...
在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...
Log4j 提供了多种 Appender,如 ConsoleAppender(控制台输出)、FileAppender(文件输出)、SMTPAppender(邮件发送)等。每个 Appender 都有自己的配置属性,如文件名、是否追加、日志格式等。 ### 6. Layout ...
Log4j的配置通常通过一个XML或properties格式的配置文件完成,例如`log4j.properties`或`log4j.xml`。以下是一个基本的`log4j.properties`配置示例: ```properties # 设置根日志器的级别为INFO log4j.rootLogger=...
5. **配置文件**: `log4j.properties`或`log4j.xml`是Log4j的配置文件,通过配置这些文件,我们可以定制日志行为。例如,我们可以指定哪个Logger的级别,选择哪个Appender,以及定义日志格式。 6. **Filter**: ...
Log4j是一款广泛使用的Java日志框架,它提供了灵活的日志记录、配置和管理功能。本篇文章将深入探讨如何在Tomcat 8.0.30版本中配置Log4j,实现日志自动按天分割并保存。 1. **Log4j介绍** Log4j是Apache软件基金会...