Почему Log4Net игнорирует мой логин? - PullRequest
1 голос
/ 24 августа 2010

Хорошо, у меня есть служба 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 Ответ

1 голос
/ 24 августа 2010

Вы создали источник событий ?

Я удивлен, что ваш код работает: вам нужно использовать XmlConfigurator.Насколько я знаю, BasicConfigurator только настраивает консольный регистратор по умолчанию ...

Возможно, также стоит подумать о создании таких регистраторов (кажется, чище и короче):

ILog log = LogManager.GetLogger(typeof(YourClass));
...