天天看点

利用log4j发送邮件利用log4j发送邮件

利用log4j发送邮件

把项目部署到服务器之后,也会一直去查有没有异常输出,所以使用log4j在报异常的时候发送邮件让开发人员及时处理,是非常有必要的!

### 配置根 ###
log4j.rootLogger = INFO,console,MAIL

### 设置输出sql的级别,其中logger后面的内容全部为jar包中所包含的包名 ###
log4j.logger.org.apache=dubug
log4j.logger.java.sql.Connection=dubug
log4j.logger.java.sql.Statement=dubug
log4j.logger.java.sql.PreparedStatement=dubug
log4j.logger.java.sql.ResultSet=dubug

### 配置输出到控制台 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

### 配置输出到邮件 ###
# log4j的邮件发送appender,如果有必要你可以写自己的appender
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#发送邮件的门槛,仅当等于或高于ERROR(比如FATAL)时,邮件才被发送  等级由低到高:debug<info<warn<Error<Fatal;
log4j.appender.MAIL.Threshold=ERROR
#邮件缓冲区大小
log4j.appender.MAIL.BufferSize=10
#发送邮件的邮箱帐号
[email protected]
#邮件接收者
[email protected]
#SMTP邮件发送服务器地址
log4j.appender.MAIL.SMTPHost=smtp.163.com
#SMTP发送认证的帐号名
[email protected](该处一定要与邮件接收者相同,不然报异常:SMTPSenderFailedException: 553 Mail from must equal authorized user)
#SMTP发送认证帐号的密码
log4j.appender.MAIL.SMTPPassword=******
#是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
log4j.appender.MAIL.SMTPDebug=true
#邮件主题
log4j.appender.MAIL.Subject=异常邮件
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss.SSS} %5l [%5p] - %m%n      

本人建议使用QQ邮箱来接收,因为可以自己微信号绑定有信息就会提醒,如果使用136邮箱,就算在微信上关注136邮箱也不会提醒!

ConversionPattern 日志信息,符号所代表的含义:

 -X号: X信息输出时左对齐;

 %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

 %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

 %r: 输出自应用启动到输出该log信息耗费的毫秒数

 %c: 输出日志信息所属的类目,通常就是所在类的全名

 %t: 输出产生该日志事件的线程名

 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)

 %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

 %%: 输出一个"%"字符

 %F: 输出日志消息产生时所在的文件名称

 %L: 输出代码中的行号

 %m: 输出代码中指定的消息,产生的日志具体信息

 %n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行

 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:

 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。

 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。

 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。

 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。