Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新的滚动文件并不总是使用Xamarin.iOS写入_Xamarin.ios_Serilog - Fatal编程技术网

新的滚动文件并不总是使用Xamarin.iOS写入

新的滚动文件并不总是使用Xamarin.iOS写入,xamarin.ios,serilog,Xamarin.ios,Serilog,我正在针对iOS的Xamarin应用程序上使用Serilog v2.8.0 我正在按如下方式配置记录器: Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose() .Enrich.WithThreadId() .Enrich.FromLogC

我正在针对iOS的Xamarin应用程序上使用Serilog v2.8.0

我正在按如下方式配置记录器:

    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.CloseAndFlush()的应用程序也不会写出文件。一旦我重新启动应用程序,文件就会被写入,但当天以前的日志显然会丢失

这可能是由于应用程序处于后台,设备在午夜时文件系统被锁定造成的

我尝试了Log.CloseAndFlush(),但我的日志记录程序已被销毁。在这种情况下,我必须重新配置记录器并更新应用程序中记录器的所有静态引用。我宁愿解决根本原因,并在文件系统可用时让SeriLog适当地打开文件

任何帮助或想法都将不胜感激