[英]How can I turn off log level & category output in .NET Core logging to AWS CloudWatch?
我已經設置了我的 API 和控制台應用程序,以通過 NuGet package Aws.Logging.AspNetCore 將日志發送到Aws.Logging.AspNetCore
。
我可以在 CloudWatch 中成功查看日志,但默認情況下它帶有不需要的信息:
[Trace] Infra.AwsLogger:
{
"id": "AAA",
"timestamp": "timestamp",
"logLevel": "Trace",
"message": "my message"
}
我不想要[Trace] Infra.AwsLogger:
部分,我只想記錄 JSON
{
"id": "AAA",
"timestamp": "timestamp",
"logLevel": "Trace",
"message": "my message"
}
這是我的記錄器代碼:
public class AwsLogger : IAwsLogger
{
private readonly AwsLoggerOptions _awsLoggerOptions;
private readonly LoggerFactory _logFactory;
private ILogger _logger;
public AwsLogger(IOptions<AwsLoggerOptions> awsLoggerOptions)
{
_awsLoggerOptions = awsLoggerOptions?.Value;
var loggerConfig = new AWSLoggerConfig
{
LogGroup = _awsLoggerOptions?.LogGroup,
Region = _awsLoggerOptions?.Region
};
_logFactory = new LoggerFactory();
_logFactory.AddAWSProvider(loggerConfig);
}
public void Log(LogMessage message, LogLevel logLevel)
{
_logger = _logFactory.CreateLogger<AwsLogger>();
logMessage.LogLevel = logLevel;
var logMessageString = JsonConvert.SerializeObject(message);
switch (logLevel)
{
case Information:
_logger.LogInformation(logMessageString);
break;
case .Warning:
_logger.LogWarning(logMessageString);
break;
case Error:
_logger.LogError(logMessageString);
break;
case Trace:
_logger.LogTrace(logMessageString);
break;
case Debug:
_logger.LogDebug(logMessageString);
break;
default:
_logger.LogInformation(logMessageString);
break;
}
}
}
這是我的應用設置:
"Logging": {
"IncludeLogLevel": false,
"IncludeCategory": false,
"IncludeNewline": false,
"IncludeException": false,
"IncludeEventId": false,
"IncludeScopes": false,
"Region": "region",
"LogGroup": "loggroup",
"LogLevel": {
"Default": "Trace",
"System": "Information",
"Microsoft": "Information"
}
}
我怎樣才能達到我想要的?
您所需要的只是結構化日志記錄。 Serilog 是一種結構化的日志框架。 您可以使用 AWS.Logger.SeriLog nuget package 將結構化日志推送到 AWS。
您可以使用以下參考來配置一個。
https://github.com/aws/aws-logging-dotnet#aspnet-core-logging
https://github.com/serilog/serilog/wiki/Configuration-Basics
對於 Json 格式,您可以使用“Serilog.Formatting.Json.JsonFormatter, Serilog”格式化程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.