【问题标题】:Environment variable does not get read?环境变量没有被读取?
【发布时间】: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" 添加到&lt;log4net&gt; 标记中。
  • log4net 在这个应用程序中是否产生任何输出?
  • 也试试 [compact parameter syntax](logging.apache.org/log4net/release/manual/… Parameter Syntax)。它可以让你写像&lt;from value="myapp@gmail.com" /&gt;这样的参数

标签: c# logging log4net


【解决方案1】:

我看到一个用于 log4net 的旧 release notes,它说您使用带有货币符号和括号的环境变量。但我以前从未使用过这种风格。

${AppData}

我使用percent 样式来访问特殊文件夹,它可以工作。使用您的自定义环境变量尝试这样的操作。

%AppData%

但是,我确实要问一下,您为什么将“收件人:”电子邮件地址放在环境变量中?你不能使用一些更现代的东西,比如内置的 log4net Contexts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2019-07-27
    • 1970-01-01
    • 2012-12-29
    • 2019-07-10
    相关资源
    最近更新 更多