【发布时间】:2019-02-24 13:14:23
【问题描述】:
您好,我无法使用 Xamarin.Forms(.NET Core 共享项目)和 Serilog 将日志写入 Android 设备上的文件。
到目前为止,我已经在共享项目中安装了 Serilog。将 Serilog、Serilog.Sinks.File 和 Serilog.Sinks.Xamarin 安装到我的 Android 项目并在 MainActivity 中初始化记录器:
Log.Logger = new LoggerConfiguration()
.WriteTo.File(Path.Combine(Environment.ExternalStorageDirectory.AbsolutePath,"XamarinLib-{Date}.txt"),
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] {Message}{NewLine}{Exception}",
fileSizeLimitBytes: 100000000,
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true,
shared: false,
retainedFileCountLimit: 31,
encoding: Encoding.UTF8)
.WriteTo.AndroidLog()
.CreateLogger();
之后我从共享项目中调用记录器,例如:
Log.Information("Test writing to log file");
我可以在 Visual Studio 调试输出中看到正在执行的日志命令,但根本没有创建该文件。 我已经在模拟器和实际设备上尝试了多个位置(没有 root 访问权限)。
我也尝试过以类似方式使用 RollingFile 接收器,但没有成功。
有什么想法吗?
【问题讨论】:
-
挂钩 Serilog SelfLog 以查看异常 - 问题可能不是 serilog 特定的,而是与无聊的 .NET 文件 API 是否可以写入您要求的位置有关 - 尝试使用 File.WriteAllText 跨度>
标签: android xamarin logging xamarin.forms serilog