У нас есть веб-сервис, который был разработан для функции журнала. Мы хотим регистрировать исключения в нашей базе данных через WS. так что если есть интернет, он работает без проблем. Но если соединения нет, мы хотели бы сохранить журнал и попытаться отправить его в определенное время. И у nlog есть обертка, называемая RetriedWrapper, но она не работает. Я пытался найти пример кода, но я не уверен, что этот код работает.
Версия NLog - 4.5.11. Я пробовал другую конфигурацию, но не работал. Вы можете найти все мои настройки ниже.
<?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" internalLogLevel="Trace" internalLogToConsole="True">
<targets autoReload="true">
<target name="logToFile" xsi:type="File" fileName="path_is_set_in_mainActivity.cs">
<layout xsi:type="JsonLayout" includeAllProperties="true" excludeProperties="j_mData,j_mlData">
<attribute name="level" layout="${level:upperCase=true}"/>
<attribute name="message" layout="${message}" />
</layout>
</target>
<target name="AsyncWrapper" type="AsyncWrapper">
<target xsi:type="RetryingWrapper" retryCount="3" retryDelayMilliseconds="20000">
<target type='WebService'
name='ws'
url='http://ip_address:port/api/LogMe'
protocol='HttpPost'
encoding='UTF-8'>
<parameter name='message' type='System.String' layout='${message}'/>
</target>
</target>
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logToFile" />
<logger name='*' writeTo='ws'></logger>
</rules>
</nlog>
Эта конфигурация работает, когда она в сети, но когда я выключил Wi-Fi, ничего не происходит .. Я думал, может быть, он отправит, когда я перезапущу приложение снова, но ничего не было отправлено. Так в чем может быть проблема?