Свободная конфигурация log4net - PullRequest
12 голосов
/ 06 января 2010

Кто-нибудь знает, есть ли свободный способ настройки log4net (appenders и все свойства для appenders и т. Д ...).

XML сводит меня с ума.

Или, если нет, кто-нибудь знает о приличной структуре ведения журналов .Net, которую можно легко настроить и предложить аналогичные функции для log4net?

Ответы [ 4 ]

7 голосов
/ 07 января 2010

Круто, ура, я посмотрю. Нашел то, что искал тоже в log4net.

К сожалению, мы начали использовать Castle Logging Facility, который, кажется, только переводит строку в XML-файл! Поэтому, возможно, придется рассмотреть возможность сделать все это с помощью DSL и сгенерировать наши xml-конфигурации в качестве шага предварительной сборки.

    private static void ConfigureLog()
    {
        var root = ((Hierarchy)LogManager.GetRepository()).Root;
        root.AddAppender(GetConsoleAppender());
        root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "standard.log", Level.Debug));
        root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "error.log", Level.Warn));
        root.Repository.Configured = true;
    }

    private static FileAppender GetFileAppender(string directory, string fileName, Level threshold)
    {
        var appender = new FileAppender
        {
            Name = "File", 
            AppendToFile = true,
            File = directory + "\\" + fileName, 
            Layout = new PatternLayout(_pattern), 
            Threshold = threshold
        };

        appender.ActivateOptions();
        return appender;
    }

    private static ConsoleAppender GetConsoleAppender()
    {
        var appender = new ConsoleAppender
        {
            Name = "Console", 
            Layout = new PatternLayout(_pattern), 
            Threshold = Level.Debug
        };

        appender.ActivateOptions();
        return appender;
    }
1 голос
/ 12 июля 2011

С тех пор я перешел на NLog по этой самой причине

1 голос
/ 12 июля 2011

Я чувствую вашу боль с конфигурацией log4net на основе XML. Некоторое время назад я достаточно разочаровался в его отладке, и начал собирать собственный свободный API для log4net. Проверьте fluent-log4net на github. Пока еще не все поддерживается на 100%, но это происходит.

Это делает тестирование просмотра конфигурации с первого взгляда намного проще, скажу я.

1 голос
/ 06 января 2010

Если вы не возражаете против зависимости от корпоративной библиотеки Microsoft, вы можете использовать Блок приложения ведения журнала . Конфигурация все еще в XML, но вы можете редактировать через графический интерфейс непосредственно в Visual Studio,

...