c# - 在Visual Studio中运行.net应用程序时,我们可以直接登录Cloudwatch吗

标签 c# .net logging amazon-cloudwatch serilog

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

我引用了下面的链接和其他一些链接,并完全按照建议进行操作,但 Cloud watch 中没有记录任何内容。该链接也没有建议我应该如何从我在 Visual Studio 中运行应用程序的 Windows 系统提供 AWS 凭证。

How to configure a Serilog sink for logging to CloudWatch

最佳答案

您可以使用 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/

相关文章:

c# - OData 错误 : The query specified in the URI is not valid. 该属性不能在查询选项中使用

python - 为什么非 root 记录器不将任何日志写入日志文件?

ruby-on-rails-3 - 如何在每条日志消息(Rails 3)中添加 session ID?

c# - Azure WorkerRole 启动后立即停止

c# - 自动初始化 C# 列表

c# - 更改列表中列表中每个字符串项的值

c - syslog.conf 配置仅登录到自定义日志文件,

c# - 在所选数据源中找不到名称为 'Username' 的字段或属性

c# - 无法为接口(interface)模拟传递构造函数参数(Mock IFeedResponse)

c# - WPF 中类似 Google map 的滚动面板