`

log4j发送邮件配置

阅读更多

http://jlk.iteye.com/blog/354216

Log4j 发送 EMail 的配置

      项目上线后,运行时往往也还会有异常发生,在异常抛出时,希望即时的得到反馈。所以需要配置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 发送邮件配置实例

    在本实例中,我们将探讨如何使用Log4j配置来实现当系统出现error时自动发送电子邮件的功能。 首先,我们需要了解Log4j的基本配置结构。一个典型的Log4j配置文件(通常是`log4j.properties`或`log4j.xml`)包含了...

    log4j 发送邮件

    2. **Log4j配置**:要使用Log4j发送邮件,首先需要在项目的配置文件(通常是`log4j.properties`或`log4j.xml`)中添加适当的配置,包括设置SMTP服务器信息、发件人和收件人地址,以及触发发送邮件的日志级别。...

    log4j实用配置扩展

    ### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能...

    log4j 不同级别 不同文件 发送邮件配置

    在这个特定的配置场景中,我们将探讨如何设置log4j,使其能将不同级别的日志信息分别记录到不同的文件中,并且具备发送邮件通知的能力。 首先,我们需要创建一个log4j的配置文件,通常命名为`log4j.properties`。这...

    log4j.jar包,和log4j.properties配置文件下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的...它通过`log4j.jar`提供核心功能,通过`log4j.properties`进行个性化配置,为开发者提供了一套完整的日志解决方案。

    Log4j 邮件配置

    Log4j 是一个广泛使用的日志记录框架,尤其在Java应用...综上所述,Log4j 的邮件配置是一项实用的功能,能够帮助开发者及时获取错误和警告信息。通过理解并正确配置SMTPAppender,我们可以实现高效的日志管理和监控。

    Log4J_全能配置文件.pdf

    ### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...

    log4j的详细配置,log4j.xml和log4j.properties,日志输出到文件,邮件,数据库,控制台等

    总之,Log4j通过其灵活的配置,可以满足不同场景下的日志需求,无论是简单地输出到控制台,还是复杂地发送邮件或存入数据库,都能轻松实现。对于开发和运维人员来说,理解和掌握Log4j的配置方法是十分重要的,它能极...

    log4j 数据库,邮件,html 等配置

    这样,一旦日志达到ERROR级别,Log4j就会自动发送包含日志信息的邮件。 三、HTML格式的日志输出 HTML格式的日志对于查看和分析日志非常友好,可以直观地呈现层次结构和颜色编码。我们可以使用HTMLLayout类创建HTML...

    javaweb配置Log4j发送日志邮件------全面

    配置Log4j发送日志邮件主要涉及以下几个步骤: 1. **配置log4j.properties文件**:这是Log4j的配置文件,我们需要在这里定义Appender。添加以下内容: ```properties # 定义一个SMTP Appender log4j.appender.SMTP...

    log4j(二):动态配置日志输出路径

    在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...

    log4j与web.xml的配置

    2. **Log4j配置文件(log4j.properties或log4j.xml)** - 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j....

    log4j配置发送邮件案例

    在"log4j发邮件"这个场景下,我们将重点关注配置Appender为SMTP电子邮件服务。Log4j提供SMTPAppender来实现这个功能。下面是一个基本的Log4j配置示例: ```xml ...

    log4j发送邮件log4j1.2.16.jar、mail.jar、activation.jar

    本文将深入探讨Log4j发送邮件的功能,以及涉及到的log4j-1.2.16.jar、mail.jar和activation.jar这三个关键文件。 Log4j是一个开源的日志框架,最初由Apache软件基金会开发。它为Java应用程序提供了灵活的日志记录...

    Log4J完整说明和配置

    ### Log4J完整说明与配置解析 #### 一、Log4J简介 Log4J是Apache的一个开源项目,用于提供灵活的日志记录功能。通过它,开发者能够控制日志信息的输出级别、输出目的地(控制台、文件等)、格式化方式等。本文将...

    Spring项目中怎么配置log4j

    在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...

    Log4j 详细配置

    Log4j 提供了多种 Appender,如 ConsoleAppender(控制台输出)、FileAppender(文件输出)、SMTPAppender(邮件发送)等。每个 Appender 都有自己的配置属性,如文件名、是否追加、日志格式等。 ### 6. Layout ...

    log4j配置

    Log4j的配置通常通过一个XML或properties格式的配置文件完成,例如`log4j.properties`或`log4j.xml`。以下是一个基本的`log4j.properties`配置示例: ```properties # 设置根日志器的级别为INFO log4j.rootLogger=...

    log4j简单使用

    5. **配置文件**: `log4j.properties`或`log4j.xml`是Log4j的配置文件,通过配置这些文件,我们可以定制日志行为。例如,我们可以指定哪个Logger的级别,选择哪个Appender,以及定义日志格式。 6. **Filter**: ...

    Tomcat 8.0.30 log4j配置

    Log4j是一款广泛使用的Java日志框架,它提供了灵活的日志记录、配置和管理功能。本篇文章将深入探讨如何在Tomcat 8.0.30版本中配置Log4j,实现日志自动按天分割并保存。 1. **Log4j介绍** Log4j是Apache软件基金会...

Global site tag (gtag.js) - Google Analytics