Xamarin表单使用Gelf4Net将日志发送到graylog
我已经创建了控制台应用程序(.NetCore),添加了gelf4Net库,实现了解决方案,加载了配置,并可以将日志发送到graylog。日志存在于控制台、文件和服务器上 现在我需要在Xamarin表单应用程序中执行同样的操作(目前仅适用于android)。我添加了类库,安装了gelf4net库。我已经将config.xml作为嵌入式资源添加到Xamarin Forms项目中。我获取配置的内容并将其作为xml文件保存在外部存储器中Xamarin表单使用Gelf4Net将日志发送到graylog,xamarin,xamarin.forms,log4net,Xamarin,Xamarin.forms,Log4net,我已经创建了控制台应用程序(.NetCore),添加了gelf4Net库,实现了解决方案,加载了配置,并可以将日志发送到graylog。日志存在于控制台、文件和服务器上 现在我需要在Xamarin表单应用程序中执行同样的操作(目前仅适用于android)。我添加了类库,安装了gelf4net库。我已经将config.xml作为嵌入式资源添加到Xamarin Forms项目中。我获取配置的内容并将其作为xml文件保存在外部存储器中 <?xml version="1.0" encoding="
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<appender name="GelfHttpAppender" type="Gelf4Net.Appender.GelfHttpAppender, Gelf4Net">
<url value="http://yourserver.com/gelf" />
<threshold value ="INFO" />
<layout type="Gelf4Net.Layout.GelfLayout, Gelf4Net">
<param name="AdditionalFields" value="app:HttpAppender,Environment:LocalDevelop,Level:%level,HostName:tp" />
<param name="Facility" value="TP" />
<param name="IncludeLocationInformation" value="false" />
<param name="SendTimeStampAsString" value="false"/>
</layout>
</appender>
<appender name="ConsoleAppender" type="LoggerNetCoreEngine.CustomAppenders.ConsoleAppender_JSON, KC_LoggerNetCoreEngine">
<threshold value ="ERROR" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<appender-ref ref="GelfHttpAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration>
配置已成功加载,我在配置文件中所做的任何更改都会对应用程序行为产生影响
从调试控制台:
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.dll asmctx DEFAULT, looking for Gelf4Net.HttpAppender, Version=1.0.0.18, Culture=neutral, PublicKeyToken=b04c12492d51401e22
04-28 17:52:48.831 D/Mono ( 4627): Assembly Ref addref Gelf4Net[0xebbccfe0] -> Gelf4Net.HttpAppender[0xebbcd0a0]: 2
04-28 17:52:48.831 D/Mono ( 4627): Requesting loading reference 2 (of 8) of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1af1a2a
04-28 17:52:48.831 D/Mono ( 4627): Assembly Ref addref Gelf4Net.HttpAppender[0xebbcd0a0] -> log4net[0xebbcd340]: 3
04-28 17:52:48.832 D/Mono ( 4627): Requesting loading reference 3 (of 8) of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll
04-28 17:52:48.832 D/Mono ( 4627): Loading reference 3 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7fwf11d50a3a
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for log4net, Version=2.0.8.0, Culture=neutral04-28 17:52:48.832 W/Mono ( 4627): The request to load the assembly System.Net.Http v4.1.1.0 was remapped to v4.0.0.0
04-28 17:52:48.832 D/Mono ( 4627): Assembly Ref addref Gelf4Net.HttpAppender[0xebbcd0a0] -> System.Net.Http[0xcbb05140]: 3
最后,日志只出现在控制台中(我并没有在这里放代码,但它工作得很好)。有没有人知道如何使它也能够通过http工作,因为服务器上没有任何东西
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.dll asmctx DEFAULT, looking for Gelf4Net.HttpAppender, Version=1.0.0.18, Culture=neutral, PublicKeyToken=b04c12492d51401e22
04-28 17:52:48.831 D/Mono ( 4627): Assembly Ref addref Gelf4Net[0xebbccfe0] -> Gelf4Net.HttpAppender[0xebbcd0a0]: 2
04-28 17:52:48.831 D/Mono ( 4627): Requesting loading reference 2 (of 8) of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1af1a2a
04-28 17:52:48.831 D/Mono ( 4627): Assembly Ref addref Gelf4Net.HttpAppender[0xebbcd0a0] -> log4net[0xebbcd340]: 3
04-28 17:52:48.832 D/Mono ( 4627): Requesting loading reference 3 (of 8) of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll
04-28 17:52:48.832 D/Mono ( 4627): Loading reference 3 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7fwf11d50a3a
04-28 17:52:48.831 D/Mono ( 4627): Loading reference 2 of /storage/emulated/0/Android/data/se.company.nameApp/files/.__override__/Gelf4Net.HttpAppender.dll asmctx DEFAULT, looking for log4net, Version=2.0.8.0, Culture=neutral04-28 17:52:48.832 W/Mono ( 4627): The request to load the assembly System.Net.Http v4.1.1.0 was remapped to v4.0.0.0
04-28 17:52:48.832 D/Mono ( 4627): Assembly Ref addref Gelf4Net.HttpAppender[0xebbcd0a0] -> System.Net.Http[0xcbb05140]: 3