所以我添加了用于日志记录的 serilog 我在本地使用它来登录文件,但我想使用 serilog 更新 AWS 云手表上的日志或在云手表上添加一个日志组,但我不知道在哪里添加秘密和密钥或如何配置 serilog 以使用它们,我应该将它们添加为环境变量吗?最佳做法是什么?
启动
app.UseSerilogRequestLogging();
appsettings.Develppment.json
"Serilog": {
"Using": [ "Serilog.Sinks.File", "AWS.Logger.SeriLog" ],
"Region": "us-west-2",
"LogGroup": "AWS:Cloudwatch:LogGroup",
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "logs/logs_{Date}.json",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
},
{
"Name": "File",
"Args": {
"path": "logs/Test.txt",
"outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}"
}
},
{
"Name": "File",
"Args": {
"path": "logs/Test.json",
//"outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss}|{Level} => CorrelationID:{CorrelationID} => RequestId:{RequestId} => RequestPath:{RequestPath} => {SourceContext}{NewLine} {Message}{NewLine}{Exception}",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
}
]
}
程序
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.Enrich.WithProperty("App Name", "example")
.CreateLogger();
try
{
Log.Information("Starting host");
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
private static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}