Logback SMTPAppender是否支持环境变量?

时间:2013-05-30 12:42:53

标签: java logging logback smtpappender

在Logback SMTPAppender的定义中,您可以指定电子邮件配置信息,如下所示:

<smtpHost>my.smtp.host</smtpHost>
<to>john.smith@example.com</to>
<from>no-reply@example.com</from>
<username>my_smtp_user</username>
<password>my_smtp_password</password>
<subject>%logger{20} - %m</subject>

我希望它不是硬编码<to>john.smith@example.com</to>字段,而是选择运行Java应用程序的任何帐户/机器的本地用户名。例如,如果我的Ubuntu用户名为ticketMonster,那么我希望<to>字段为:

<to>ticketMonster@example.com</to>

或者如果我的操作系统用户名是bgates,我希望它是:

<to>bgates@example.com</to>

因此,我正在寻找动态用户名评估。我试过了:

<to>${username}@example.com</to>

但这不起作用......这里有任何想法或建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

<to>元素的变量替换应该有效。如果没有,那就是一个bug。您能否请创建一个新问题on our jira以便解决此问题?

答案 1 :(得分:0)

我猜,你可以采用几种方法:

  1. 您可以在属性文件中定义用户名,并在.backback.xml文件中加载.properties文件。

    property resource =“filename.properties”

    <username>${username}</username>
    <password>${password}</password>
    <to>${email1}</to>
    <from>${from}</from>
    
  2. 您可以在logback.xml文件中使用这样的System变量

    &LT; property name =“user”value =“$ {username}”/&gt;