Я хочу настроить ведение журнала 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 учетные данные должны храниться и как регистратор будет считывать учетные данные.