Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 环境变量未被读取?_C#_Logging_Log4net - Fatal编程技术网

C# 环境变量未被读取?

C# 环境变量未被读取?,c#,logging,log4net,C#,Logging,Log4net,我在VisualStudio中有一个控制台应用程序。我的app.config文件中有带有smtp appender的log4net文件。我在代码中设置了环境变量,即我的电子邮件地址,并尝试引用此环境变量来发送电子邮件。然而,当应用程序运行时,log4net似乎没有读取这个值 我的log4net: <?xml version="1.0" encoding="utf-8" ?> <Configuration> <configSections>

我在VisualStudio中有一个控制台应用程序。我的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>
有人知道我该怎么做吗? 谢谢。

我看到一个旧的for log4net,它说您使用一个带有金钱符号和括号的环境变量。但我以前从未用过那种风格

${AppData}
我使用了访问特殊文件夹的样式,它可以工作。使用自定义环境变量进行如下尝试

%AppData%

但是,我必须问一下,为什么要在环境变量中添加一个to:email地址?你不能使用一些更现代的东西,比如内置的log4net吗?

请在log4net打开的情况下运行你的应用程序,并发布log4net构建这个appender的相关部分。将debug=true添加到标记中。log4net在此应用程序中是否生成任何输出?请尝试[compact parameter syntax]参数语法。它允许您编写如下参数
%AppData%