Можно ли как-нибудь приостановить Serilog? - PullRequest
0 голосов
/ 08 апреля 2019

В моем приложении есть Serilog.Он записывает некоторую информацию в текстовый файл, когда приложение работает.В приложении также есть форма электронной почты.Я хочу прикрепить к сообщению последние файлы журнала, но не могу, потому что эти файлы используются процессом.

Я попытался установить для флага SHARED значение true, но это не помогло.

Кроме того, у меня была идея приостановить запись в журнал методом CloseAndFlush () при подключении.Но я не знаю, как его перезапустить.

    private static LoggerConfiguration Logger = new LoggerConfiguration()
                                                   .MinimumLevel.Information()
                                                   .WriteTo.File(Path.Combine(MailHelper.SerilogPath, $"{Program.CurrentUser.Login}_actions_log_.txt"),
                                                                 rollingInterval: RollingInterval.Hour, shared: true,
                                                                 retainedFileCountLimit: 10);

    public static void CreateLogger()
    {
        Log.Logger = Logger.CreateLogger();           
    }


    public static void PauseLogging()
    {
        Log.CloseAndFlush();
    }

Основная идея - легко прикрепить лог-файл к сообщению.Ведение журнала должно работать до и после него.

Но знайте, что оно заблокировано процессом.

...