每当Logger.Error(“一些错误”)发送Play2.4中的邮件

时间:2015-06-18 11:30:21

标签: java email logging playframework-2.0 logback

我想在下面的语句中发送邮件  Logger.Error("some error") 遇到了。 我可以这样做的一种方法是在我使用logger.error的任何地方使用电子邮件发送代码。但是我认为有SMTPAppender的{​​{1}} logback,它会在调用logger.error时自行发送电子邮件,但我找不到相应的文档或教程。有帮助吗?要编写什么配置...如果要包含哪些插件以及如何插件?

Edit1:这是我的logback.xml

<configuration>

  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home}/logs/application.log</file>
    <encoder>
      <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
    </encoder>
  </appender>

  <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <asynchronousSending>false</asynchronousSending>
    <smtpHost>smtp.gmail.com</smtpHost>
    <smtpPort>465</smtpPort>
    <SSL>true</SSL>
    <username>myusername</username>
    <password>mypwd</password>
    <to>toEmail</to>
    <from>fromEmail</from>
    <subject>Linka ERROR: %logger</subject>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
    </layout>
  </appender>

  <logger name="play" level="INFO" />
  <logger name="application" level="INFO"/>

  <logger name="crawler" level="DEBUG">
    <!--<appender-ref ref="STDOUT" />-->
  </logger>

  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="EMAIL" />
  </root>

</configuration>

build.sbt如下:

name := """my-dnd"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs,
  "javax.mail" % "mail" % "1.4.5",
  "javax.activation" % "activation" % "1.1.1"

)

// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator

我在控制台中也没有收到任何错误,但没有发送邮件。我错过了什么?请指导。

0 个答案:

没有答案