Вопрос по c#, log4net – Log4Net / C # - отключить ведение журнала по умолчанию

7

Я использую log4net в проекте C #, в производственной среде, я хочу отключить все ведение журнала, но когда происходит какая-то фатальная ошибка, он должен записать все предыдущие 512 сообщений в файл. Я успешно настроил это, и это работает нормально. Он регистрирует сообщения в файл при возникновении фатальной ошибки.

Но когда я запускаю его из Visual Studio, я вижу, что все сообщения журнала записываются в окно вывода, независимо от того, является ли это фатальным или нет. (Я не вижу этих сообщений при запуске из Проводника Windows - мое приложение является WinForm exe, и в консоли нет окна для просмотра результатов)

Есть ли способ отключить эту запись? Мне нужны мои журналы только в файле, это тоже, когда происходит какая-то фатальная ошибка.



    

        
            
            
            
            
            
            
            
                
            
        

        
            
            
            
                
            
            
         

        
            
                      
        
    

И вот как я настраиваю его в статическом инициализаторе Windows Forms.

static Window1()
    {
      Stream vStream = typeof(Window1).Assembly.GetManifestResourceStream("TestLogNet.log4net.config");
      XmlConfigurator.Configure(vStream);
      BasicConfigurator.Configure();
    }

И у меня есть объект logger, инициализированный в конструкторе WinForm

logger = LogManager.GetLogger(typeof(Window1));

[язык - C #, .NET Framework - 3.5, Visual Studio 2008, log4net 1.2.10, тип проекта - WinForms]

имеет ли значение, что все выводится на консоль? конечно, так как нет консоли o ваше приложение winforms это 'просто регистрируешься как хочешь? Omar Kooheji
Это важно для производительности, поскольку все консольные вызовы синхронизированы. Если ты'у нас есть куча фоновых потоков, делающих логи, тогда онибуду сильно страдать. Kent Boogaart
+1 за полную информацию о проблеме (есть слишком много вопросов, к которым можно вернуться "Помоги'не работает ") alexandrul

Ваш Ответ

2   ответа
0

Вы все еще видите сообщения в Visual Studio, если приложение скомпилировано в режиме выпуска? Это'Возможно, что log4net использует Debug.Write для отображения ошибок в любом случае. Если это'в таком случае эти сообщения не должныпоявляются в режиме выпуска.

7

УдалитьBasicConfigurator.Configure () линия. Тот's, что делает эта строка - добавляет ConsoleAppender, указывающий на Console.Out.

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