如何在 nlog 中为 xamarin 表单动态设置 webservicetarget url

how to webservicetarget url dynamically in nlog for xamarin forms

如何在 NLog 中为 NLog.Config 文件中的 Xamarin.Forms 动态设置 Web 服务目标 URL。需要获取变量而不是硬编码。

<target name="webservice" 
        xsi:type="WebService"
        url="{var:url}"
        protocol="JsonPost"
        proxyType="NoProxy" 
        namespace="{var:namespace}"
        methodName ="InsertLogs"
        encoding="utf-8">
        <parameter name="Datetime" type="System.String" layout="${time}"/>
        <parameter name="level" layout="${level}" />
</target>


 

您可以在运行时加载和修改目标并设置 URL:

var target = LogManager.Configuration.FindTargetByName("webservice") as WebServiceTarget;
target.Url = new Uri("https://my.url/logs");
LogManager.ReconfigExistingLoggers();

请注意,NLog v5.0 为 Url-选项添加了 Layout-support。

有 NLog v5.0 pre-release 可供试用。

另请参阅:https://github.com/NLog/NLog/wiki/WebService-target