C# 环境变量未被读取?
我在VisualStudio中有一个控制台应用程序。我的app.config文件中有带有smtp appender的log4net文件。我在代码中设置了环境变量,即我的电子邮件地址,并尝试引用此环境变量来发送电子邮件。然而,当应用程序运行时,log4net似乎没有读取这个值 我的log4net:C# 环境变量未被读取?,c#,logging,log4net,C#,Logging,Log4net,我在VisualStudio中有一个控制台应用程序。我的app.config文件中有带有smtp appender的log4net文件。我在代码中设置了环境变量,即我的电子邮件地址,并尝试引用此环境变量来发送电子邮件。然而,当应用程序运行时,log4net似乎没有读取这个值 我的log4net: <?xml version="1.0" encoding="utf-8" ?> <Configuration> <configSections>
<?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>
有人知道我该怎么做吗?
谢谢。我看到一个旧的for log4net,它说您使用一个带有金钱符号和括号的环境变量。但我以前从未用过那种风格
${AppData}
我使用了访问特殊文件夹的样式,它可以工作。使用自定义环境变量进行如下尝试
%AppData%
但是,我必须问一下,为什么要在环境变量中添加一个to:email地址?你不能使用一些更现代的东西,比如内置的log4net吗?请在log4net打开的情况下运行你的应用程序,并发布log4net构建这个appender的相关部分。将debug=true添加到标记中。log4net在此应用程序中是否生成任何输出?请尝试[compact parameter syntax]参数语法。它允许您编写如下参数
%AppData%