LOG4J用了common logging的标准接口。。。所以用LOG4J的时候得引用common logging的包哦。。
当然如果要在LOG4J中用EMAIL的话,得把javamail和jaf包引用进来。。。
OK。。原理我就不啰嗦了。。直接上代码和配置。
配置:
因为大部分的邮件服务器都是需要认证的,而LOG4J大牛们却没有把认证加进去。。那么就只有自己来改进它吧。。
由于SMTPAppender的属性都是私有的,没有给我们留下继承的可能,所以我们选择直接从它的父类AppenderSkeleton来继承,然后把SMTPAppender的源代码全部COPY过来,增加如下EMAIL用户名、密码和是否需要认证的标记:
在activateOptions()方法中增加验证的代码:
如果发送的日志信息涉及到中文字符,还必须设定发送内容的编码,在sendBuffer()方法如修改设置content为如下所示,把编码方式指定为GB2312格式:
最后添加三个新加属性的GETTER和SETTER,全部源代码如下所示: