Доставка журналов в Logz.io с помощью NLog не удалась
Я просто пытаюсь отправить журналы ошибок из моего приложения ASP.NET MVC 5 в Logz.io
я использую NLog
чтобы отправить мои журналы.
Я установил пакеты NLog и NLog.Web
У меня есть следующий файл nlog.config:
<?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"
autoReload="true"
throwExceptions="true"
internalLogLevel="ERROR"
internalLogFile="C:\Temp\nlog-internal.log">
<extensions>
<add assembly="Logzio.DotNet.NLog"/>
</extensions>
<targets async="true">
<target name="file" type="File"
fileName="<pathToFileName>"
archiveFileName="<pathToArchiveFileName>"
keepFileOpen="false"
layout="<long layout patten>"/>
<target name="logzio"
type="Logzio"
token="LRK......"
logzioType="nlog"
listenerUrl="https://listener.logz.io:8071"
bufferSize="1"
bufferTimeout="00:00:05"
retriesMaxAttempts="3"
retriesInterval="00:00:02"
debug="false" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logzio" />
</rules>
</nlog>
Затем каждый мой контроллер C# имеет следующую строку:
private static Logger logger = LogManager.GetCurrentClassLogger();
и затем я пытаюсь отправить свои журналы, используя что-то вроде:
logger.Fatal("Something bad happens");
Тем не менее, когда я writeTo="file"
в nlog.config
файл, я могу найти файл журнала на моем локальном диске с "Что-то плохое случается", так что все в порядке.
Однако в моем веб-интерфейсе LogzIo ничего не появляется, когда я writeTo="logzio"
Логи там не отправляются.
Что я упустил?
2 ответа
Отвечая на мой собственный вопрос после того, как я нашел, как решить это.
На самом деле, весь мой проект использует HTTPS. Во внутренних логах Nlog у меня была эта ошибка
Ошибка: System.Net.WebException: запрос был прерван: не удалось создать безопасный канал SSL/TLS
Я просто добавил эту строку кода в самом начале ApplicationStart
в Global.asax.cs
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
После тестирования всего проекта в течение нескольких дней кажется, что это не влияет на другие части проекта.Тем не менее, просто будьте осторожны, так как это глобальная настройка
У меня была та же проблема, и оказалось, что в моем опубликованном приложении отсутствовали dll logzio. Я добавил их, и это решило проблему.
Проверьте, не отсутствуют ли эти файлы в папке bin: Logzio.DotNet.NLog.dll Logzio.DotNet.Core.dll