C# 在Visual Studio中运行.net应用程序时,是否可以直接登录到Cloudwatch

C# 在Visual Studio中运行.net应用程序时,是否可以直接登录到Cloudwatch,c#,.net,logging,amazon-cloudwatch,serilog,C#,.net,Logging,Amazon Cloudwatch,Serilog,我在.net应用程序中实现了Serilog日志记录。我想知道我是否可以直接将日志发布到AWS Cloud watch。如果是,我需要采取哪些步骤。我应该如何配置和保存AWS凭据以及在何处配置和保存AWS凭据。(我不是用Ec2或Elastic Beanstalk托管我的应用程序) 我已经参考了下面的链接和其他几个链接,并完全按照建议进行了操作,但在CloudWatch中没有任何内容被登录。该链接也没有建议如何从我在Visual Studio中运行应用程序的Windows系统中提供AWS凭据 您可以

我在.net应用程序中实现了Serilog日志记录。我想知道我是否可以直接将日志发布到AWS Cloud watch。如果是,我需要采取哪些步骤。我应该如何配置和保存AWS凭据以及在何处配置和保存AWS凭据。(我不是用Ec2或Elastic Beanstalk托管我的应用程序)

我已经参考了下面的链接和其他几个链接,并完全按照建议进行了操作,但在CloudWatch中没有任何内容被登录。该链接也没有建议如何从我在Visual Studio中运行应用程序的Windows系统中提供AWS凭据


您可以从中使用
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;
}
根据,AWS凭据是使用标准AWS SDK for.NET凭据搜索路径找到的。您可以使用PowerShell设置凭据,如下所示:

PS > Set-AWSCredential `
             -AccessKey [YOUR ACCESS KEY without brackets] `
             -SecretKey [YOUR SECRET KEY without brackets] `
             -StoreAs default

有关如何使用AWS.NET日志记录提供程序的信息,请查看此repo。