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();
}
}
}
分享到:
相关推荐
总结来说,Log4j是一个强大的日志工具,通过灵活的配置和API,可以帮助开发者实现对应用程序日志的精确控制,从而提高问题定位和调试的效率。在实际的`testLog4j`示例中,我们可以看到如何设置和使用Log4j进行日志...
**日志框架Log4j详解与使用指南** 在软件开发中,日志记录扮演着至关重要的角色,它帮助开发者追踪程序运行状态、定位错误、优化性能。Log4j是Apache组织提供的一款开源日志框架,广泛应用于Java项目中。本文将深入...
总结,配置Log4j发送日志邮件能帮助开发者实时监控系统,快速响应问题。通过理解Log4j的配置原理,我们可以根据项目需求定制日志记录和发送策略,从而提高开发效率和系统稳定性。在实践中,不断优化和完善日志系统,...
总结,log4j和iBatis的配置是Java应用的基础,正确设置可以优化开发效率,提高问题排查的便利性,同时也能确保数据库操作的高效稳定。通过理解并熟练运用这两个框架的配置,开发者能更好地掌控应用的运行状态和...
总结来说,Log4j是Java日志处理的利器,通过配置和API,它可以灵活地控制日志级别、输出目的地和格式,帮助开发者更好地管理和理解应用的运行状态。而`log4j-1.2.17.jar`是Log4j的库文件,包含了Log4j的所有功能;`...
总结来说,Log4j是一个强大且灵活的日志框架,通过简单的配置就能实现复杂的日志管理。在"LogTest"这个示例中,我们可以看到如何配置、创建和使用Logger来记录不同级别的日志信息。熟练掌握Log4j将极大地提升我们...
总结起来,Log4j通过SMTPAppender与JavaMail API(包含在mail.jar中)和JavaBeans Activation Framework(包含在activation.jar中)结合,实现了将日志信息以电子邮件的形式发送给指定接收者的功能。这对于监控...
### log4net用法总结 #### 一、简介与安装 log4net 是一个基于 .NET 的日志记录工具,其灵感来源于 Java 平台下的 log4j,并且由 Apache 软件基金会维护。log4net 可以帮助开发者记录程序运行时的日志信息,这对于...
Log4js是基于Node.js的日志框架,其设计灵感来源于Java的log4j。它允许开发者通过简单的API来记录不同级别的日志,如DEBUG、INFO、WARN、ERROR等,并且可以将日志输出到控制台、文件、网络甚至数据库。而log4js-...
#### 四、总结 DOM4J作为一款功能强大的XML处理工具,不仅提供了简洁的API,还具备良好的性能表现,非常适合在Java项目中进行XML文件的处理工作。无论是生成还是读取XML文件,DOM4J都能够提供高效且便捷的解决方案...
此外,也可能包含了log4j2的配置文件,log4j2是广泛使用的日志框架,通过定制配置,可以满足不同级别的日志输出需求,便于开发过程中的问题定位和调试。 在实际应用中,Mybatis的使用通常会伴随着Mapper接口的创建...
<log4j.version>1.2.17</log4j.version> <!-- Spring 相关依赖 --> <groupId>org.springframework <artifactId>spring-context ${spring.version} <groupId>org.springframework <artifactId>...
四、配置数据库Helper 创建一个继承自ORMLite提供的`OrmLiteSqliteOpenHelper`的类,用于初始化数据库和版本管理: ```java import com.j256.ormlite.database.DatabaseHelper; import ...
同时,配合合适的日志框架(如Logback或Log4j),可以记录数据库操作的详细信息。 8. **测试JDBC连接**: 在项目中,通常会有测试类来验证数据库连接和操作是否正常。使用`@SpringBootTest`和`@Sql`注解,可以模拟...
它们的配置文件(如log4j.properties或logback.xml)允许开发者定制日志输出的级别(如DEBUG、INFO、WARN)、目的地(控制台、文件、网络)以及格式。 在开发过程中,IDE(集成开发环境)的配置也至关重要。Eclipse...
可以配置日志工厂,例如使用Log4j、SLF4J或内置的日志实现,查看执行的SQL语句和参数。 8. **MyBatis的动态SQL** MyBatis的强项之一是动态SQL,允许在XML配置文件中使用`if`, `choose`, `when`, `otherwise`, `...
### git常用命令总结 #### 一、概述 在日常工作中,`git` 是必不可少的版本控制工具之一。本文档旨在汇总个人使用过程中遇到并频繁使用的 `git` 命令,便于查阅与学习。 #### 二、核心命令及用法详解 **1. git ...
Log.d("Email", "Email sent successfully."); } catch (MessagingException e) { Log.e("Email", "Failed to send email", e); } ``` 在实际开发中,还需要根据邮件服务商的具体配置调整SMTP服务器地址、端口...
可以使用像 `java.util.logging`、Log4j 或 Slf4j 这样的日志框架。 6. **Oracle 数据库连接**: 如果你需要从数据库获取邮件列表,可以使用 JDBC 连接 Oracle 数据库。文中提到的 `db` 目录下的实现涉及创建 `thin...
在Eclipse中,右键点击项目 -> "Build Path" -> "Configure Build Path" -> "Libraries" -> "Add External JARs",然后选择MyBatis的jar文件,包括mybatis-x.x.x.jar和mybatis-logging的相应实现(如log4j)。...