`
Java_Dyf
  • 浏览: 10248 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Log4j使用总结EMAIL

阅读更多
log4j.appender.MAIL=log.mailInfo.SelfSMTPAppender
#log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
# LEVEL
log4j.appender.MAIL.Threshold=INFO
# Email
#log4j.appender.MAIL.BufferedIO=true
#设置缓存,当日志记录数为10条时,发送邮件。默认为1
log4j.appender.MAIL.BufferSize=10
# SMTP
log4j.appender.MAIL.SMTPHost=smtp.163.com
# 主题 用java native2ascii编译解决中文乱码
log4j.appender.MAIL.Subject=LOG4J\u65E5\u5FD7\u8BB0\u5F55\u4FE1\u606F\uFF01
# 邮箱登陆名称
log4j.appender.MAIL.SMTPUsername=**************
# 邮箱登陆密码
log4j.appender.MAIL.SMTPPassword=**************
# 邮箱名称
log4j.appender.MAIL.From=**********@163.com
# 目的邮箱,多个邮箱以逗号分隔
log4j.appender.MAIL.To=*******@hotmail.com
# PatternLayout
#log4j.appender.MAIL.layout=log.mailInfo.SelfHtmlLayOut
log4j.appender.MAIL.layout=log.mailInfo.SelfPatternLayOut
log4j.appender.MAIL.layout.ConversionPattern=[Message] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#不写入上层即父类logger
log4j.additivity.MAIL=false

解决邮箱标题乱码:用native2ascii把中文字符进行Unicode编码
解决邮件内容乱码:写一个子类继承PatternLayOut,重写器getContentType方法,返回字符串"text/plain;charset=UTF-8”
解决邮件缓存问题:如果程序停止时,日志记录小于10, 默认不会发送。写一个子类

public class SelfSMTPAppender extends SMTPAppender implements Runnable {

	public SelfSMTPAppender() {
	super(new SelfTriggeringEventEvaluator());
	Runtime.getRuntime().addShutdownHook(new Thread(this));
            }

	@Override
	public void append(LoggingEvent event) {
		if (!(checkEntryConditions())) {
			return;
		}

		event.getThreadName();
		event.getNDC();
		event.getMDCCopy();
		if (this.getLocationInfo()) {
			event.getLocationInformation();
		}
		this.cb.add(event);
		if (this.evaluator.isTriggeringEvent(event))
			if (cb.length() > this.getBufferSize()) {
sendBuffer();
			}
	}

	/**
	 * 当程序结束时,还在缓冲里面的事件是不会被发送出来的。因为事件数往往没有bufferSize的一半<br>
	 * 加一个线程处理,当JVM退出时,将缓冲区数据发送出去。即程序结束前,执行一些清理工作<br>
	 */
	@Override
	public void run() {
		if (cb.length() > 0) {
			sendBuffer();
		}
	}
}
分享到:
评论
1 楼 koubai 2011-11-15  
very useful

相关推荐

    log4j应用的一个例子

    总结来说,Log4j是一个强大的日志工具,通过灵活的配置和API,可以帮助开发者实现对应用程序日志的精确控制,从而提高问题定位和调试的效率。在实际的`testLog4j`示例中,我们可以看到如何设置和使用Log4j进行日志...

    log4j配置详解与使用方法说明

    **日志框架Log4j详解与使用指南** 在软件开发中,日志记录扮演着至关重要的角色,它帮助开发者追踪程序运行状态、定位错误、优化性能。Log4j是Apache组织提供的一款开源日志框架,广泛应用于Java项目中。本文将深入...

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

    总结,配置Log4j发送日志邮件能帮助开发者实时监控系统,快速响应问题。通过理解Log4j的配置原理,我们可以根据项目需求定制日志记录和发送策略,从而提高开发效率和系统稳定性。在实践中,不断优化和完善日志系统,...

    log4j和ibatis配置文档

    总结,log4j和iBatis的配置是Java应用的基础,正确设置可以优化开发效率,提高问题排查的便利性,同时也能确保数据库操作的高效稳定。通过理解并熟练运用这两个框架的配置,开发者能更好地掌控应用的运行状态和...

    log4j-java

    总结来说,Log4j是Java日志处理的利器,通过配置和API,它可以灵活地控制日志级别、输出目的地和格式,帮助开发者更好地管理和理解应用的运行状态。而`log4j-1.2.17.jar`是Log4j的库文件,包含了Log4j的所有功能;`...

    log4j日志Demo

    总结来说,Log4j是一个强大且灵活的日志框架,通过简单的配置就能实现复杂的日志管理。在"LogTest"这个示例中,我们可以看到如何配置、创建和使用Logger来记录不同级别的日志信息。熟练掌握Log4j将极大地提升我们...

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

    总结起来,Log4j通过SMTPAppender与JavaMail API(包含在mail.jar中)和JavaBeans Activation Framework(包含在activation.jar中)结合,实现了将日志信息以电子邮件的形式发送给指定接收者的功能。这对于监控...

    log4 net用法总结(TXT格式)

    ### log4net用法总结 #### 一、简介与安装 log4net 是一个基于 .NET 的日志记录工具,其灵感来源于 Java 平台下的 log4j,并且由 Apache 软件基金会维护。log4net 可以帮助开发者记录程序运行时的日志信息,这对于...

    log4js-extras:Log4js 扩展

    Log4js是基于Node.js的日志框架,其设计灵感来源于Java的log4j。它允许开发者通过简单的API来记录不同级别的日志,如DEBUG、INFO、WARN、ERROR等,并且可以将日志输出到控制台、文件、网络甚至数据库。而log4js-...

    xml各种解析方法

    #### 四、总结 DOM4J作为一款功能强大的XML处理工具,不仅提供了简洁的API,还具备良好的性能表现,非常适合在Java项目中进行XML文件的处理工作。无论是生成还是读取XML文件,DOM4J都能够提供高效且便捷的解决方案...

    SSM框架的学习与应用-Java EE企业级应用开发学习记录(第一天)Mybatis的学习资料

    此外,也可能包含了log4j2的配置文件,log4j2是广泛使用的日志框架,通过定制配置,可以满足不同级别的日志输出需求,便于开发过程中的问题定位和调试。 在实际应用中,Mybatis的使用通常会伴随着Mapper接口的创建...

    springmvc+spring+mybatis+Maven+mysql环境搭建,附源码

    &lt;log4j.version&gt;1.2.17&lt;/log4j.version&gt; &lt;!-- Spring 相关依赖 --&gt; &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context ${spring.version} &lt;groupId&gt;org.springframework &lt;artifactId&gt;...

    Android ORMLite框架入门使用实例Demo

    四、配置数据库Helper 创建一个继承自ORMLite提供的`OrmLiteSqliteOpenHelper`的类,用于初始化数据库和版本管理: ```java import com.j256.ormlite.database.DatabaseHelper; import ...

    SpringBoot项目采用JDBC连接MySql示例

    同时,配合合适的日志框架(如Logback或Log4j),可以记录数据库操作的详细信息。 8. **测试JDBC连接**: 在项目中,通常会有测试类来验证数据库连接和操作是否正常。使用`@SpringBootTest`和`@Sql`注解,可以模拟...

    JAVA常用配置

    它们的配置文件(如log4j.properties或logback.xml)允许开发者定制日志输出的级别(如DEBUG、INFO、WARN)、目的地(控制台、文件、网络)以及格式。 在开发过程中,IDE(集成开发环境)的配置也至关重要。Eclipse...

    MyBatis 实现简单的 增加 查找

    可以配置日志工厂,例如使用Log4j、SLF4J或内置的日志实现,查看执行的SQL语句和参数。 8. **MyBatis的动态SQL** MyBatis的强项之一是动态SQL,允许在XML配置文件中使用`if`, `choose`, `when`, `otherwise`, `...

    git常用命令总结

    ### git常用命令总结 #### 一、概述 在日常工作中,`git` 是必不可少的版本控制工具之一。本文档旨在汇总个人使用过程中遇到并频繁使用的 `git` 命令,便于查阅与学习。 #### 二、核心命令及用法详解 **1. git ...

    android 开发電邮 mail.jar,additionnal.jar,activation.jar

    Log.d("Email", "Email sent successfully."); } catch (MessagingException e) { Log.e("Email", "Failed to send email", e); } ``` 在实际开发中,还需要根据邮件服务商的具体配置调整SMTP服务器地址、端口...

    如何用javamail定时发送邮件

    可以使用像 `java.util.logging`、Log4j 或 Slf4j 这样的日志框架。 6. **Oracle 数据库连接**: 如果你需要从数据库获取邮件列表,可以使用 JDBC 连接 Oracle 数据库。文中提到的 `db` 目录下的实现涉及创建 `thin...

    eclipse + mybits 操作mysql数据库

    在Eclipse中,右键点击项目 -&gt; "Build Path" -&gt; "Configure Build Path" -&gt; "Libraries" -&gt; "Add External JARs",然后选择MyBatis的jar文件,包括mybatis-x.x.x.jar和mybatis-logging的相应实现(如log4j)。...

Global site tag (gtag.js) - Google Analytics