1

我想我遇到了一个 playframework - logback 特定的错误,也许不是,任何帮助都会很棒!

我需要一个电子邮件附加程序,以便在发生错误时向我发送电子邮件。
所以我创建了一个简单的,其中定义了所有属性:

<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <smtpHost>myhost</smtpHost>
    <smtpPort>25</smtpPort>
    <STARTTLS>true</STARTTLS>
    <username>username</username>
    <password>pass</password>
    <to>to</to>
    <from>from</from>
    <subject>Error: %logger{20} - %m</subject>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>%date %-5level %logger{35} - %message%n</pattern>
    </layout>
</appender>

这工作得很好。
然后我想重构所有属性,因为显然我不想将密码和类似的东西提交给源代码控制。
所以我用 ${propname} 替换了所有属性并在开头添加了这个

<property file="conf/mail.properties"/>

现在不再发送电子邮件了。
我调试并打印出属性,发现问题与引号有关。
我的收件人/收件人是电子邮件地址,当我将它们放在我的属性文件中时,我需要用引号将它们括起来,否则我会收到如下错误:

Caused by: com.typesafe.config.ConfigException$Parse: /myconfdir../mail.properties: 19: Reserved character '@' is not allowed outside quotes

我的密码中还有一个“+”符号,如果它在属性文件中没有被引用,我会得到同样的错误。
使用这些引用的值进行调试时,我看到引用包含在其中。
因此,正在尝试将电子邮件发送到“a@b.com”而不是 a@b.com。从字段和密码相同。
所以显然它不起作用。

知道如何防止这种情况吗?

4

1 回答 1

0

我通过这个完成了同样的任务:

在 logback.xml 文件中,添加:

property resource="filename.properties"

<username>${username}</username>
<password>${password}</password>
<to>${email1}</to>
<from>${from}</from>
于 2013-07-24T10:30:14.550 回答