NLog не отправляет журналы на AWS CloudWatch - PullRequest
0 голосов
/ 18 января 2020

Я настраиваю NLog в моем asp net ядре 2.1 приложения, но оно не генерирует журнал на AWS, я следовал документации, я провел несколько тестов, я смог только создать журнал. txt на localhost, однако для конфигурации AWS он не работает. Я делаю что-то неправильно? следуйте коду:

Вот конфигурация NLog

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwConfigExceptions="true">
  <extensions>
    <add assembly="NLog.AWS.Logger" />
  </extensions>
  <targets>
    <target name="aws" type="AWSTarget" logGroup="NLog.ConfigExample" region="us-east-1"/>
    <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile,aws" />
  </rules>
</nlog>

Я называю это так:

Program.cs

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using NLog.Web;
using Microsoft.Extensions.Logging;
using System;
using NLog;
using NLog.Config;
using NLog.Targets;
using NLog.AWS.Logger;

namespace API_Coletor_Status
{
    public class Program
    {        
        public static void Main(string[] args)
        {

            CreateWebHostBuilder(args).Build().Run();
            ConfigureNLog();
            Logger loggerr = LogManager.GetCurrentClassLogger();
            loggerr.Info("Check the AWS Console CloudWatch Logs console in us-east-1");
            loggerr.Info("to see messages in the log streams for the");
            loggerr.Info("log group NLog.ConfigExample");
        }

        static void ConfigureNLog()
        {
            var config = new LoggingConfiguration();

            var consoleTarget = new ColoredConsoleTarget();
            config.AddTarget("console", consoleTarget);

            var awsTarget = new AWSTarget()
            {
                LogGroup = "NLog.LogPlataforma",
                Region = "us-east-1"
            };
            config.AddTarget("aws", awsTarget);

            config.LoggingRules.Add(new LoggingRule("*", NLog.LogLevel.Debug, consoleTarget));
            config.LoggingRules.Add(new LoggingRule("*", NLog.LogLevel.Debug, awsTarget));

            LogManager.Configuration = config;
        }
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
           WebHost.CreateDefaultBuilder(args)
               .UseStartup<Startup>()
              .ConfigureLogging((hostingContext, logging) =>
              {
                  logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                  logging.AddConsole();
                  logging.AddDebug();
                  logging.AddEventSourceLogger();
              })
              .UseNLog();   
    }
}

Я что-то не так делаю?

...