【发布时间】:2010-04-08 03:26:22
【问题描述】:
我在 Visual Studio 中有一个控制台应用程序。我的 app.config 文件中有带有 smtp appender 的 log4net 内容。我在我的代码中设置了环境变量(即我的电子邮件地址)并尝试引用此环境变量来发送电子邮件。但是,当应用程序运行时,log4net 似乎不会读取此值。
我的 log4net:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="smtp" type="log4net.Appender.SmtpAppender">
<param name="to" value="${EmailAddress}" />
<param name="from" value="myapp@gmail.com" />
<param name="subject" value="testing app" />
<param name="smtpHost" value="<smtp host name>" />
<param name="bufferSize" value="1" />
<param name="lossy" value="false" />
<param name="Threshold" value="ERROR"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{ISO8601} [%t] [%-5p] %c - %m%n" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="smtp" />
</root>
</log4net>
</Configuration>
在我的控制台应用程序中,我设置了如下环境变量:
Environment.SetEnvironmentVariable("EmailAddress", "testApp@gmail.com", EnvironmentVariableTarget.Process);
有谁知道我怎样才能让它工作? 谢谢。
【问题讨论】:
-
请使用 log4net internal debugging 运行您的应用程序,并发布 log4net 构建此附加程序的相关部分。将
debug="true"添加到<log4net>标记中。 -
log4net 在这个应用程序中是否产生任何输出?
-
也试试 [compact parameter syntax](logging.apache.org/log4net/release/manual/… Parameter Syntax)。它可以让你写像
<from value="myapp@gmail.com" />这样的参数