Невозможно записывать логи в облачные часы AWS из приложения ASP.Net, размещенного на компьютере Windows Elastic Beanstalk, с помощью NLog - PullRequest
1 голос
/ 01 ноября 2019

Я создал новое приложение ASP.Net и развернул его на компьютере AWS Elastic Beanstalk, используя его инструментарий развертывания. Сейчас я пытаюсь добавить каркас ведения журнала в приложение. Я использую NLog и хотел записать журналы в папку AWS CloudWatch.

Я установил пакет AWS.Logger.NLog из NuGet и добавил в мое приложение файл NLog.config с примером класса Logger, как показано ниже.

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwExceptions="true">
  <targets>
    <target name="aws" type="AWSTarget" logGroup="NLog" region="us-east-1"/>
    <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile,aws" />
  </rules>
</nlog>

public class Logger
    {
        private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
        public static void LogErrorMessage(String message)
        {
            logger.Error(message);
        }

        public static void LogInfoMessage(String message)
        {
            logger.Info(message);
        }
    }

Когда я запускаю свое приложение локальнопапка с образцом журнала успешно создана, а сообщения регистрируются в CloudWatch. Но после развертывания приложения на ElasticBeanstalk на CW ничего не записывается. Даже папка тоже не создается.

Может кто-нибудь помочь мне с тем, что мне здесь не хватает.

1 Ответ

0 голосов
/ 02 ноября 2019

Что, если вы включите <extensions>?

<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" region="us-east-1"/>
    <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile,aws" />
  </rules>
</nlog>
...