我已经在我的 .net 应用程序中实现了 Serilog 日志记录。我想知道是否可以直接将日志发布到 AWS Cloud watch 中。如果是,我需要采取什么步骤。我应该如何以及在哪里配置和保存 AWS 凭证。 (我没有在 Ec2 或 Elastic Beanstalk 中托管我的应用程序)。
我引用了下面的链接和其他一些链接,并完全按照建议进行操作,但 Cloud watch 中没有记录任何内容。该链接也没有建议我应该如何从我在 Visual Studio 中运行应用程序的 Windows 系统提供 AWS 凭证。
最佳答案
您可以使用 Nuget 中的 NLog.AWS.Logger
包(以及其他包) 。要配置它,您有两种选择:通过配置文件或通过您的代码,如下所示:
public static async Task Main(string[] args)
{
ConfigureNLog();
Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("my test log entry");
}
static void ConfigureNLog()
{
var config = new LoggingConfiguration();
var consoleTarget = new ColoredConsoleTarget();
config.AddTarget("console", consoleTarget);
var awsTarget = new AWSTarget()
{
LogGroup = "NLog.ProgrammaticConfigurationExample",
Region = "eu-west-1"
};
config.AddTarget("aws", awsTarget);
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, consoleTarget));
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, awsTarget));
LogManager.Configuration = config;
}
根据documentation ,使用标准 AWS SDK for .NET 凭证搜索路径找到 AWS 凭证。您可以使用 PowerShell
设置凭据,如下所示:
PS > Set-AWSCredential `
-AccessKey [YOUR ACCESS KEY without brackets] `
-SecretKey [YOUR SECRET KEY without brackets] `
-StoreAs default
关于c# - 在Visual Studio中运行.net应用程序时,我们可以直接登录Cloudwatch吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710898/