Я использую Serilog v2.8.0 для приложения Xamarin с таргетингом на iOS.
. Я настраиваю регистратор следующим образом:
Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose()
.Enrich.WithThreadId()
.Enrich.FromLogContext()
.Enrich.WithExceptionDetails()
.WriteTo.File(logFile, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}[{Level:u3}][{ThreadId}]{SourceContext}-{Message:l}{NewLine:l}{Exception:l}", rollingInterval: RollingInterval.Day)
.WriteTo.NSLog(outputTemplate: "[{Level:u3}][{ThreadId}]{SourceContext}-{Message:l}{NewLine:l}{Exception:l}")
.CreateLogger();
Кажется, что иногда, но не всегда, новый файл в ежедневном списке не записывает в файловую систему. Приложение будет работать и регистрироваться, но ничего не выписывается. Даже смахивание убивает приложение, в котором я выполняю Log.CloseAndFlu sh () не записывает файл. После перезапуска приложения файл записывается, но предыдущие журналы за этот день явно утеряны.
Возможно, это вызвано тем, что приложение находится в фоновом режиме с заблокированной файловой системой, когда устройство пересекает полночь .
Я пробовал Log.CloseAndFlu sh (), но это избавляет от моего логгера. В этом случае мне нужно перенастроить регистратор и обновить все мои ссылки на регистратор в моем приложении. Я предпочел бы устранить причину root, и SeriLog соответствующим образом открыл бы файл, когда файловая система станет доступной.
Любая помощь или мысли будут оценены.