Остановите процесс регистрации в log4net и снимите блокировку файла журнала - PullRequest
2 голосов
/ 03 августа 2011

Я работаю над приложением службы Windows, которое должно запускать задания, запланированные на определенное время. Каждый цикл выполнения задания регистрируется с использованием log4net и имеет собственный файл для выполнения (при 5 заданиях, выполняемых 5 дней в день, будет создано 25 файлов журнала).

Вопрос в том, как остановить блокировку файла журнала log4net, чтобы после завершения работы я мог отправить файл журнала по электронной почте и удалить его с жесткого диска?

Мне нужно сделать это программно, поэтому настройка файла конфигурации не будет работать в этом случае.

Я пробовал это до сих пор, но это не работает:

    logger.Logger.Repository.LevelMap.Clear();
    logger.Logger.Repository.LevelMap.Add(logger.Logger.Repository.LevelMap["OFF"]);

1 Ответ

2 голосов
/ 03 августа 2011

Если вы используете FileAppender, вы можете установить для LockingModel значение MinimalLock:

Dim fileAppenderTrace As New log4net.Appender.RollingFileAppender
fileAppenderTrace.ImmediateFlush = True
fileAppenderTrace.LockingModel = New FileAppender.MinimalLock()
fileAppenderTrace.ActivateOptions()

Файл будет выпущен после каждой записи в журнале, а не после завершения работы, поэтому я не уверен, что это именно то, что вы ищете.

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