为什么Log4Net会忽略我的logName?

时间:2010-08-24 12:08:16

标签: wcf log4net event-log log4net-configuration

好的,我有一个写入事件日志的WCF服务。

一切都很好,除了一个细节..它不会关注logName属性,..这是配置。

    <!--EventLog Appender-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
        <logName value="MyCustomLog"/>
        <applicationName value="MyCustomEventSource" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>

..和初始化代码。

        //Create an instance of the log from the declaring type.
        var stackTrace = new StackTrace();
        var frame = stackTrace.GetFrame(0);
        log = LogManager.GetLogger(frame.GetMethod().DeclaringType);
        BasicConfigurator.Configure();

事件日志确实写入了但是在应用程序日志中(使用MyCustomEventSource“源代码”而不是我自己的。显然我错过了一些重点,但我看不出那可能是什么......我如果它产生任何差异,则在Win 7和IIS 7.5上运行。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您是否创建了event source

我很惊讶您的代码有效:您需要使用XmlConfigurator。据我所知,BasicConfigurator仅配置默认控制台记录器......

也许还考虑创建这样的记录器(看起来更干净,更短):

ILog log = LogManager.GetLogger(typeof(YourClass));
相关问题