.Net Core 2.0控制台应用程序未通过NLog向Loggly发送消息



我有一个.NET Core 2.0(Topshelf(控制台应用程序,需要将日志发送到Loggly。我们已经使用NLog、NLog.Targets.Loggly、Topshelf.NLog、Loggly-csharp-config和Loggly-csharp实现了相同类型的应用程序。

我添加了另外两个目标,控制台和文本。其他两个目标都运行良好。

客户Loggly密钥在我们的.NET 4.71应用程序中运行良好,该应用程序具有类似的结构和相同的包。

这是我的包裹参考:

<ItemGroup>
<PackageReference Include="Autofac" Version="4.8.1" />
<PackageReference Include="loggly-csharp" Version="4.6.1.64" />
<PackageReference Include="loggly-csharp-config" Version="4.6.1.64" />
<PackageReference Include="NLog.Targets.Loggly" Version="4.7.0" />
<PackageReference Include="Topshelf" Version="4.1.0" />
<PackageReference Include="Topshelf.NLog" Version="4.1.0" />

编辑:添加更多实现代码来自App.config:

<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
<section name="loggly" type="Loggly.Config.LogglyAppConfig, Loggly.Config, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
...
<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="Trace" internalLogFile="c:tempnlog-internal.log">
<extensions>
<add assembly="NLog.Targets.Loggly" />
</extensions>
<variable name="DefaultLayout" value="${longdate} | ${level:uppercase=true:padding=5} | ${message} | ${exception:format=@} | ${callsite} | ${callsite-linenumber} | ${all-event-properties}" />
<targets async="true">
<target xsi:type="File" name="logfile" fileName="logs/log.txt"  layout="${DefaultLayout}"/>
<target xsi:type="Console" name="console"  layout="${DefaultLayout}"/>
<target xsi:type="Loggly" name="Loggly" layout="${DefaultLayout}"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile,Loggly,console" />
</rules>
</nlog>
<loggly
xmlns="Loggly"
applicationName="masked"
customerToken="masked"
throwExceptions="true">
<transport logTransport="Https"/>
<tags>
<simple>
<tag value="DEV"/>
</simple>
<complex>
<tag type="Loggly.HostnameTag" formatter="{0}"/>
<tag type="Loggly.ApplicationNameTag" formatter="{0}"/>
</complex>
</tags>
</loggly>

内部日志显示至少有人试图攻击Loggly。

2018-12-12 09:05:09.8816的调试目标Topshelf.Hosts.ConsoleRunHost(按级别(:2018-12-12 09:05:09.8816调试跟踪=>2018-12-12 09:05:09.8816调试=>2018-121209:05:09.8816调试信息=>2018-12-12 09:05:08.8816调试警告=>2018-12-12-12 09:05:09.8816调试错误=>2018-1212 09:05:09.0816调试致命=>2018-12-12 09:05:10.1486跟踪AsyncWrapper(名称=Loggly(:写入1个事件(定时器(2018-12-12 09:05:10.1486跟踪AsyncWrapper(名称=控制台(:写入1个事件(定时器(2018-12-1209:05:10.1486跟踪AsyncWrapper(名称=日志文件(:正在写入1个事件【定时器】2018-12-12 09:05:10.1747跟踪打开

感谢@RolfKristensen的评论,我尝试通过代码手动配置csharp客户端,它运行良好。我必须将配置转移到appSettings,并让配置管理器来处理这些配置。我想loggly-csharp需要更好的文档来避免在.NET Core中使用他们的配置示例。

相关内容

  • 没有找到相关文章

最新更新