1

好的,所以我有一个写入事件日志的 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 如果有任何差异。

任何帮助,将不胜感激。

4

1 回答 1

1

您是否创建了事件源

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

也许还可以考虑创建这样的记录器(看起来更简洁):

ILog log = LogManager.GetLogger(typeof(YourClass));
于 2010-08-24T12:47:01.913 回答