Вместо того, чтобы рулон журнала после даты/времени или указанного максимального размера, я хочу иметь возможность вызвать метод типа «ResetLog», который копирует мой «log.txt» в «log.txt.1», а затем очищает журнал .текст.«Вручную» катит файл журнала log4net RollingFileAppender?
Я пытался реализовать, что делать что-то подобное с FileAppender, а не RollingFileAppender:
var appenders = log4net.LogManager.GetRepository().GetAppenders();
foreach (var appender in appenders) {
var fa = appender as log4net.Appender.FileAppender;
if (fa != null) {
string logfile = fa.File;
fa.Close();
string new_file_path = CreateNextLogFile(logfile);
fa.File = new_file_path;
fa.ActivateOptions();
}
}
Файл закрывается и CreateNextLogFile() переименовывает его. Затем я создаю новый файл журнала и устанавливаю FileAppender для его использования. Тем не менее, я думал, что ActivateOptions продолжит и перенастроит FileAppender с желаемыми настройками. Я просмотрел документацию log4net и не вижу других общедоступных методов, которые позволяют мне снова открыть FileAppender после его закрытия. Может ли кто-нибудь рекомендовать способ внедрения опрокидывания? Было бы неплохо, если бы у RollingFileAppender было что-то подобное, но я не видел ничего полезного в его документации.
Это отличная идея, я, я попробую! Спасибо. – Dave