Ошибка Log4Net при использовании RollingFileAppender - PullRequest
2 голосов
/ 10 февраля 2011

Я использую log4net для регистрации в моем приложении.Я связал свой проект с TFS.Я создал оболочку для log4net, как показано ниже:

public static class TestLogger
{
    private static readonly ILog log = LogManager.GetLogger("TestLogger");

    static TestLogger()
    {
        log4net.Config.XmlConfigurator.Configure();
    }

    public static void LogInfo(string information)
    {
        log.Info(information);
    }

    public static void LogError(string erroMessage, Exception ex)
    {
        log.Error(erroMessage, ex);
    }

    public static void LogWarnings(string warningText)
    {
        log.Warn(warningText);            
    }
}

Когда я попытался запустить программу из VS2010, я обнаружил, что файл журнала не создается.Я создаю другой проект (не привязанный к TFS) и выполняю некоторую регистрацию, он успешно завершился и создал файл в bin / debug приложения.

Ниже приведен мой файл конфигурации log4net.Кто-нибудь может помочь в этом вопросе?

Ответы [ 4 ]

2 голосов
/ 10 февраля 2011

Некоторые советы по устранению неполадок:

  1. определяет абсолютный путь к файлу журнала в вашем файле конфигурации.

  2. проверить текущий рабочий каталог в вашем коде (Environment.CurrentDirectory). Если вы работаете в отладчике VS и не указали рабочий каталог на вкладке «Отладка» в свойствах своего проекта, он может по умолчанию использовать текущий рабочий каталог Visual Studio.

Не думаю, что привязанность к TFS уместна.

1 голос
/ 13 апреля 2011

Просто измените эту часть

<appendToFile value="true" />
0 голосов
/ 10 февраля 2011

Попробуйте включить внутреннюю отладку, как объяснено здесь .Это должно сказать вам, в чем проблема.Если нет результатов внутренней отладки, то вы, вероятно, не настроили log4net.

0 голосов
/ 10 февраля 2011

Возможно, ваше приложение уже использует некоторую декларативную конфигурацию , которая где-то скрыта в коде.Ищите что-то вроде этого: [assembly: log4net.Config.XmlConfigurator(Watch=true)]

В противном случае попробуйте получить доступ к хранилищу log4net с помощью log4net.LogManager.GetRepository().Возвращает объект типа ILoggerRepository .Вы можете попытаться использовать этот объект для записи некоторой информации о текущей конфигурации log4net в консоль или в другое место.

...