在部署到我的EC2时,NLog似乎不再正常工作。在本地部署时,记录聊天没有任何问题。另一方面,它正在快速地写入它的内部日志,而忽略了它是否应该写入它的内部日志的值。
我尝试将要使用的协议类型从TCP切换到UDP,这会阻止它写入错误(但也不允许它连接到PaperTrail,这是重点)。我还尝试关闭了内部日志记录,这也不起作用。在我的NLog.config上重新复制,以及多次复习最初的教程。我还检查了端口的防火墙设置、端口的EC2安全组设置以及防火墙上的应用程序权限。
NLog版本:"4.6.2“
Platform:.Net 4.5
当前NLog配置 (xml或C#,如果相关)
<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="false" internalLogFile="c:\temp\nlog-internal.log">
<extensions>
<add assembly="NLog.Targets.Syslog" />
</extensions>
<targets>
<target name="syslog" type="Syslog">
<messageCreation>
<facility>Local7</facility>
<rfc5424 hostname="${machinename}-Ragnarok" appName="ChatServer-Ragnarok" />
</messageCreation>
<messageSend>
<protocol>TCP</protocol>
<tcp>
<server>logs.papertrailapp.com</server>
<port>REDACTED</port>
<tls>
<enabled>true</enabled>
</tls>
</tcp>
</messageSend>
</target>
<target name="logfile" xsi:type="File" fileName="file.txt" />
<target name="logconsole" xsi:type="Console" />
</targets>
<rules>
<logger name="*" minLevel="Trace" appendTo="syslog" />
<logger name="*" minlevel="Info" writeTo="logconsole" />
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
实际错误如下(日志中每隔几秒钟重复一次):2019-04-15 13:35:22.3986 Warn SendAsync failed Exception: System.NullReferenceException: object reference未设置为对象的实例。在NLog.Targets.Syslog.MessageSend.SocketInitializationForWindows.KeepAliveConfigurationIsUpToDate(KeepAliveConfig套接字)在NLog.Targets.Syslog.MessageSend.SocketInitializationForWindows.ApplyKeepAliveValues(Socket套接字,在NLog.Targets.Syslog.MessageSend.SocketInitialization.SetKeepAlive(Socket套接字keepAliveConfig),KeepAliveConfig keepAliveConfig)在NLog.Targets.Syslog.Extensions.TaskExtensions.<>c__DisplayClass0_1.<Then>b__0(Task t) at System.Threading.Tasks.ContinuationResultTaskFromTask
1.InnerInvoke()的NLog.Targets.Syslog.MessageSend.Tcp.Init()在System.Threading.Tasks.Task.Execute()
有没有人知道如何让它工作/为什么它在部署时不能工作?
https://stackoverflow.com/questions/55690860
复制相似问题