Как остановить log4net от регистрации и освободить последний файл - PullRequest
4 голосов
/ 19 марта 2019

Я использую log4net в C # Win Form App, и у меня есть кнопка запуска / остановки -

Когда я нажимаю «Пуск», загружается конфигурация log4net и создается файл журнала - Это работает.

Но теперь я хочу добавить опцию, чтобы нажать кнопку «Стоп», чтобы остановить регистратор и, конечно, освободить файл, чтобы я мог открыть его с помощью openFileDialog, который есть в моем приложении для чтения текста файла журнала с StreamReader для отображения файла журнала на мультилинии textbox.

Ответы [ 3 ]

1 голос
/ 19 марта 2019

Вы можете изменить Threshold во время выполнения.Чтобы прекратить запись, установите значение Off.Я уже показал, как это работает в этом ответе .

0 голосов
/ 21 марта 2019

Это работает для меня, чтобы прочитать log4net log-файл:

            string text;
            var fileStream = new FileStream(@"C:\logs\yourLogFile.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
            {
                text = streamReader.ReadToEnd();
                MessageBox.Show(this, text);
            }
0 голосов
/ 19 марта 2019

Остановка log4net во время выполнения требует изменения его файла конфигурации:

<level value="ALL" />

до

<level value="INFO" />

Если вы не можете изменить файл конфигурации, вы должны определить прокси для log.debug():

static public class LogDebugProxy
{
    static public bool LogDebug = false;
    static public void debug(log4net.ILog log)
    {
        if (LogDebug)
            log.debug();
    }
}

Затем замените log.debug() на LogDebugProxy.debug(log) во всем вашем проекте.

Теперь вы можете включить / отключить его по доверенности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...