Как настроить ведение журнала Serilog в Cloudwatch, используя json - PullRequest
0 голосов
/ 10 января 2020

Я хочу настроить ведение журнала Serilog для наблюдения за облаком, настроив через json. У меня есть простое приложение WPF и класс оболочки Serilog logger. Но когда я запускаю приложение, оно не регистрируется в логах cloudwatch. Буду также признателен, если вы поможете мне узнать, как AWS учетные данные могут быть сохранены и переданы в конфигурацию Logger.

Ниже приведен мой класс оболочки Serilog,

public class SerilogLogger : ILog
{
    private readonly ILogger _logger;

    public SerilogLogger(IConfiguration configuration)
    {
        _logger = new LoggerConfiguration()
            .ReadFrom.Configuration(configuration)
            .CreateLogger();
        Log.Logger = _logger;
    }

    public void Debug(string format, params object[] args)
    {
        _logger.Debug(format, args);
    }

    public void Error(Exception ex)
    {
        _logger.Error(ex,"Error");
    }

    public void Error(Exception ex, string format, params object[] args)
    {
        _logger.Error(ex, format, args);
    }

    public void Fatal(Exception ex, string format, params object[] args)
    {
        _logger.Fatal(ex, format, args);
    }

    public void Info(string format, params object[] args)
    {
        _logger.Information(format,args);
    }

    public void Trace(string format, params object[] args)
    {
        _logger.Verbose(format, args);
    }

    public void Warn(string format, params object[] args)
    {
        _logger.Warning(format,args);
    }

    public void Close()
    {
        Log.CloseAndFlush();
    }
}

И оболочка называется со страницы моего запуска

private readonly ILog _logger;
    private int _count = 0;
    public MainWindow()
    {
        InitializeComponent();
        var configuration = new ConfigurationBuilder()
            .AddJsonFile("SerilogConfig.json")
            .Build();
        _logger = new SerilogLogger(configuration);
        _logger.Info("Click count is {0}", _count += 1);
    }

И у меня есть файл SerilogConfig. json,

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.File", "AWS.Logger.SeriLog" ],
    "MinimumLevel": "Verbose",
    "Region": "us-east-2",
    "LogGroup": "Petnet-Olympus-Serilog",
    "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId", "WithExceptionDetails", "WithAssemblyName", "WithAssemblyVersion" ],
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "logs/Olympus_Serilog_.txt",
          "rollingInterval": "Day",
          "outputTemplate": "{Timestamp:o} [{Level}] ({MachineName}/{AssemblyName}-{AssemblyVersion}/{ThreadId}) {Message}{NewLine}{Exception}"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": "logs/Olympus_Serilog_.json",
          "rollingInterval": "Day",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
        }
      },
      {
        "Name": "AWSSeriLog"
      }
    ]
  }
}

Я не могу выполнить регистрацию в Cloudwatch, также хотел бы знать, как AWS учетные данные должны храниться и как регистратор будет считывать учетные данные.

...