Как создать класс, который может настроить serilog для разных файлов событий, используя azure хранилище BLOB-объектов - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь добавить протоколирование Serilog в свой проект (ASP. NET Веб-приложение (. NET Framework 4.6.1)), и я не могу получить его после фактической регистрации оператора.

string errorFile = DateTime.Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + "_V2_Error.txt";

string infoFile = DateTime. Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + "_V2_Info.txt";

        log = new LoggerConfiguration()
       .MinimumLevel.Verbose()
       .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
       .WriteTo.AzureBlobStorage(StorageAccount, Serilog.Events.LogEventLevel.Error, ContainerName, errorFile, null, true, null, null, true)
       .MinimumLevel.Verbose()
       .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information)
       .WriteTo.AzureBlobStorage(StorageAccount, Serilog.Events.LogEventLevel.Information, ContainerName, infoFile, null, true, null, null, true)
       .CreateLogger();

Я вызываю другое событие следующим образом:

   public static void Error(string ErrorMessage)
       {
        try
        {

            log.Error($"Error: {ErrorMessage}");
        }
        catch (Exception e)
        {

        }
    }

  public static void Info(string ErrorMessage)
    {
        try
        {

            log.Information($"info: {ErrorMessage}");
        }
        catch (Exception e)
        {

        }
    }

1 Ответ

0 голосов
/ 18 марта 2020

В пакете Serilog.Sinks.AzureBlobStorage вы можете использовать LoggerConfiguration для настройки формата файла журнала, а в проекте Unit Test есть несколько примеров, на которые вы можете ссылаться к.

Ниже приведен мой тестовый код.

            var connectionString = CloudStorageAccount.Parse("ConnnectionString");

            var bn = new BlobNameFactory("{yyyy}/{MM}/{dd}_V2_Info.txt");
            var log = new LoggerConfiguration()
                 .WriteTo.AzureBlobStorage(connectionString,LogEventLevel.Information,"logtest",bn.GetBlobName(new DateTimeOffset((DateTime.Now))))
                 .CreateLogger();

            log.Information("test information log");

Ниже приведен скриншот моего результата.

enter image description here

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