log4net: что я делаю не так?

Будучи новичком в log4net, я просто скопировал строки из примера проекта NHibernate, где я вижу, что файл log.txt обновлен. Есть ли быстрый ответ, почему у меня не создается файл?

С уважением,
Беррил

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Я видел здесь еще один пост, в котором говорилось, что это должно быть в AssemblyInfo, но в примере проекта это просто еще одна строка в статическом вспомогательном классе. Не желая «возиться» с AssemblyInfo, я также поместил это в статический помощник вместе со следующим, чтобы фактически войти в тот же статический вспомогательный класс:

private static readonly log4net.ILog _log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType );

И в app.config у меня есть

<configSections>
    <section
        name="log4net"
        type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"
    />
</configSections>

    <!-- This section contains the log4net configuration settings -->
<log4net>
    <!-- Define an output appender (where the logs can go) -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender, log4net">
        <param name="File" value="log.txt" />
        <param name="AppendToFile" value="false" />
        <layout type="log4net.Layout.PatternLayout, log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
        </layout>
    </appender>
    <appender name="LogDebugAppender" type="log4net.Appender.DebugAppender, log4net">
        <layout type="log4net.Layout.PatternLayout, log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/>
        </layout>
    </appender>

    <!-- Setup the root category, set the default priority level and add the appender(s) (where the logs will go) -->
    <root>
        <priority value="ALL" />
        <appender-ref ref="LogFileAppender" />
        <appender-ref ref="LogDebugAppender"/>
    </root>

    <!-- Specify the level for some specific namespaces -->
    <!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
    <logger name="NHibernate">
        <level value="ALL" />
    </logger>
</log4net>

person Berryl    schedule 08.05.2010    source источник


Ответы (1)


Вы поступаете правильно.

Включите эту настройку:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>

И вставьте сюда полученный результат.

person Casper Leon Nielsen    schedule 07.01.2013
comment
Просто подумал, что напишу это, когда люди будут биться головой об одну и ту же стену; ) - person Casper Leon Nielsen; 08.01.2013