Не может заставить Log4Net работать в моем веб-сайте ASP.NET :(

У меня есть книга, исследуя все виды проектов в SNOBOL. Первая глава исследует историю и культуру вокруг программирования SNOBOL и языка и проводит некоторое время, приводя аргумент, что хорошему программисту нравится язык не из-за его дефектов, но в в злости из них.

Мой любимый язык Незначок Значка / . Но существуют все еще вещи, которые раздражают меня об этом:

  1. Это не известно или все что популярный.
  2. Это имеет намного меньшую библиотеку по сравнению с PHP, Perl, Java, и т.д. Доступ к базе данных сделан через ODBC, который является на самом деле довольно раздражающим.
  3. Для всего это - в других отношениях превосходная обработка списка, я пропускаю PHP's, встроенный explode() и implode().
  4. Это не имеет таблицы постоянной. Списки, да, таблицы, нет.
  5. Это - скомпилированный (на самом деле переведенный) язык.

5
задан Pure.Krome 11 August 2009 в 01:14
поделиться

4 ответа

​​

У меня была такая же проблема, и я думаю, что она смотрела не на тот web.config или что-то в этом роде. Я наконец отделил log4net.config от web.config и указал путь к нему \ inetpub \ Logs \ log4net.config, и все в порядке.

UDPATED ON REQUEST: отредактировано из немного более сложной версии.

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level (%logger:%line) - %message%newline" />
        </layout>
    </appender>\

    <root>
        <!--ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
        <level value="ALL" />
        <appender-ref ref="TraceAppender" />
    </root>
</log4net>

И это настроено в коде следующим образом:

        var logpath = WebConfigurationManager.AppSettings["LogConfigPath"] ?? @"\Inetpub\Logs\log4net.config";
        var finfo = new System.IO.FileInfo ( logpath );
        XmlConfigurator.Configure( finfo );
5
ответ дан 18 December 2019 в 14:49
поделиться

ASP.Net имеет ограничение на использование доступа к файловой системе, поэтому попробуйте явно указать каталог в App_Data (если это разрешено) Вот мой рабочий пример:

<log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="App_Data\logging\log-file.txt"/>

Или с опрокидыванием

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="App_Data\logging\log-append.txt"/>
5
ответ дан 18 December 2019 в 14:49
поделиться

Есть как минимум 2 возможные проблемы:

  • Способ указания адреса файла, попробуйте вместо этого использовать абсолютный путь.
  • Процессу, выполняющему вызов, необходимы права на изменение файл. Убедитесь, что учетная запись пользователя, производящая запись в файл журнала, имеет права на это.

Чтобы отладить это, я бы создал пустой каталог, предоставил всем полный контроль, настроил для входа в этот каталог. Затем проверьте его, убедитесь, что он работает, а затем постепенно повышайте безопасность до приемлемого уровня.

0
ответ дан 18 December 2019 в 14:49
поделиться

Хорошо, нашел ответ. Мне нужно было использовать TraceAppender .

Файл конфигурации приложения можно использовать для управления слушателями действительно используются. См. MSDN документация по классу Trace для подробности о настройке трассировки системе.

События записываются с использованием System.Diagnostics.Trace.Write (строка, строка) метод. Имя регистратора событий: передается как значение для категории имя метода записи.

Вот мои данные конфигурационного файла ...

<log4net>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>


    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
        <level value="ALL" />
        <appender-ref ref="TraceAppender" />
    </root>
</log4net>
3
ответ дан 18 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: