本文介绍如何使用logback中的SMTPAppender实现Error日志消息的发送. com.google.common.cache.LocalCache$ }"/> <appender name="EMAIL" class="ch.qos.logback.classic.net.<em>SMTPAppender</em> root> <root level="WARN"> <appender-ref ref="EMAIL"/> </root> </configuration> 结果 SMTPAppender </filter> 常见问题 DynamicClassLoadingException: Failed to instantiate type ch.qos.logback.classic.net.SMTPAppender
SMTPAppender 可以将logging event存放在一个或多个固定大小的缓冲区中,然后在用户指定的event到来之时,将适当的大小的logging event以邮件方式发送给运维人员 javax.mail.Session实例的创建依赖于SMTPAppender本身的配置信息。如果设置为true,则Session的创建时通过JNDI获取引用。 javax.mail.Session实例的创建依赖于SMTPAppender本身的配置信息。如果设置为true,则Session的创建时通过JNDI获取引用。 因此不管什么时候,SMTPAppender一封邮件最多传递256条日志事件。SMTPAppender依赖于JavaMail API。而JavaMail API又依赖于IOC框架(依赖注入)。 为了防止这个摇摆不定的效果,当SMTPAppender遇到标签为" FINALIZE_SESSION "的日志事件时,就会释放与之对应的缓冲区。
yyyy-MM-dd HH:mm:ss} %-5r %-5p %C - %M(line:%L) %m%n log4j.appender.File.Encoding=UTF-8 # Mail #使用Log4J SMTPAppender log4j.appender.Mail=org.apache.log4j.net.SMTPAppender #只发送日志级别大于等于ERROR的日志 log4j.appender.Mail.Threshold
5level %logger{60} %X{sourceThread} - %msg%n</pattern> </encoder> </appender> 我们还可以利用Logback提供的SMTPAppender <appender name="email" class="ch.qos.logback.classic.net.<em>SMTPAppender</em>"> <smtpHost>smtp.163.com</smtpHost
写入指定邮箱的配置 <appender name="<em>SmtpAppender</em>" type="log4net.Appender.<em>SmtpAppender</em>"> <! --<appender-ref ref="ADONetAppender" />--> <appender-ref ref="<em>SmtpAppender</em>"/> <!
log4j.additivity.acts_competition_debug=false # 发送日志到指定邮件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 查看源码 org.apache.log4j.net.SMTPAppender类相关参数如下: ? 参数,复制粘贴也没问题啊,各种百度查询,参数也是这样配置。
property name="mailSubject" value="日志测试"/> <appender name="MAIL" class="ch.qos.logback.classic.net.<em>SMTPAppender</em> property name="mailSubject" value="日志测试"/> <appender name="MAIL" class="ch.qos.logback.classic.net.<em>SMTPAppender</em>
############### # SMTP Appender ####################### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender # 将日志发送到email log4j.logger.MailLog=WARN,A5 # APPENDER A5 log4j.appender.A5=org.apache.log4j.net.SMTPAppender # 将日志发送到email log4j.logger.MailLog=WARN,A5 # APPENDER A5 log4j.appender.A5=org.apache.log4j.net.SMTPAppender ; //把日志发送到mail Logger logger3 = Logger.getLogger("MailLog"); //SMTPAppender sa = new SMTPAppender
FileAppender JDBCAppender JMSAppender LF5Appender NTEventLogAppender NullAppender RollingFileAppender SMTPAppender
SmtpAppender:将日志写到邮件中。 SmtpPickupDirAppender:配置与SmtpAppender类似,但要把SmtpHost换为PickupDir。
文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) org.apache.log4j.net.SMTPAppender THREAD]%n%c[CATEGORY]%n %m[MESSAGE]%n%n(输出格式) 输出到邮件 Java代码 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 文件大小到达指定尺寸的时候产生一个新的文件), #org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) #org.apache.log4j.net.SMTPAppender ######## # SMTP Appender ####################### #log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender ################# # SMTP Appender ####################### #log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
2)SMTPAppender 也被加强了。 3)出于安全原因,暂时删除了数据库支持。 4)因 Groovy 配置过于强大,出于安全原因,删除了对 Groovy 的配置支持,后面也不太可能恢复。
consoleAppender,logfile,MAIL log4j.addivity.org.apache=true #ConsoleAppender,控制台输出 #FileAppender,文件日志输出 #SMTPAppender = true # 直接输出,不进行缓存 log4j.appender.consoleAppender.Target = System.err # 默认是 System.out 方式输出 #发送邮件:SMTPAppender #log4j.rootLogger = INFO,MAIL log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold
其他 除了输出流的,logback-classic包里面还提供了另外几种,如 SocketAppender、SSLSocketAppender、SMTPAppender、DBAppender、AsyncAppender SMTPAppender 典型的应用场景就是把一些关键的错误日志信息发送给相关的人员,达到触发告警的作用。
文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) org.apache.log4j.net.SMTPAppender ]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n(输 出格式) 输出到邮件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 文件大小到达指定尺寸的时候产生一个新的文件), #org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) #org.apache.log4j.net.SMTPAppender ################# # SMTP Appender ####################### #log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 # 发送日志给邮件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 # 发送日志给邮件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4net.Appender.SmtpAppender:用于FATAL、ERROR等高危级别的日志,直接发邮件给项目责任人,非常的方便有效。
RollingFileAppender (每隔一定时间自动保存一份新增的日志文件,并按照时间戳等指定格式命名);当产生安全级别达ERROR或FATAL的LogEvent时, 给维护人员发送邮件可用SMTPAppender
############### # SMTP Appender ####################### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender # 将日志发送到email log4j.logger.MailLog=WARN,A5 # APPENDER A5 log4j.appender.A5=org.apache.log4j.net.SMTPAppender # 将日志发送到email log4j.logger.MailLog=WARN,A5 # APPENDER A5 log4j.appender.A5=org.apache.log4j.net.SMTPAppender ; //把日志发送到mail Logger logger3 = Logger.getLogger("MailLog"); //SMTPAppender sa = new SMTPAppender