新的滚动文件并不总是使用Xamarin.iOS写入
我正在针对iOS的Xamarin应用程序上使用Serilog v2.8.0 我正在按如下方式配置记录器:新的滚动文件并不总是使用Xamarin.iOS写入,xamarin.ios,serilog,Xamarin.ios,Serilog,我正在针对iOS的Xamarin应用程序上使用Serilog v2.8.0 我正在按如下方式配置记录器: Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose() .Enrich.WithThreadId() .Enrich.FromLogC
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适当地打开文件
任何帮助或想法都将不胜感激