记录.NET Standard 1.4和UWP

时间:2017-10-23 14:09:12

标签: c# xamarin logging uwp .net-standard-1.4

我很难找到支持.NET Standard 1.4日志记录并支持UWP的库。最后,我想写入本地sqlite数据库进行日志记录,但如果不会发生这种情况,我只需输出到本地存储上的文件即可。

所以,目前,我正在使用Serilog,我想我可以让它只使用输出到本地文件,但我有一个问题......

我有两层(在许多其他图层中),但为此,我的应用程序中有两层:

演示文稿:

UWP proj

Android proj

iOS proj

Xamarin.Forms proj

服务:

.Net Standard 1.4服务项目。

他们是同一解决方案的一部分,但所有不同的项目,目录。

我想要在服务项目中的UWP,Android和iOS中使用服务。

目前,我的服务项目中有一个ILoggingService接口,我在UWP项目中为UWP设置了LoggingService,因为我需要使用特定于UWP的ApplicationDate路径。

我现在遇到的问题是,我还想记录.Net Standard 1.4项目中服务产生的任何异常。这也位于移动设备上。所以我很困惑如何设置它。我是否应该在.Net标准项目中创建另一个LoggingService来实现ILoggingService以记录与服务相关的错误或......?如果是这样,在这种情况下路径应该是什么? UWP路径还是C:/路径?我糊涂了?

1 个答案:

答案 0 :(得分:1)

对此有一个非常积极的体验:

https://github.com/Belorus/XLog

记录示例:

 private static readonly Logger Log = LogManager.Default.GetLogger("ClassName");
 // ....
 for (int i = 0; i < 100000; i++)
     Log.Info(“Hello world!”);

输出示例:

  

16:18:17:439 | INFO | 1 | MainController | Hello world!

init逻辑示例

 private static void InitLogger()
 {
     var formatter = new LineFormatter();
     var logConfig = new LogConfig(formatter);
     var target = new SyncFileTarget(@”D:\Log.log”);
     logConfig.AddTarget(LogLevel.Trace, LogLevel.Fatal, target);
     LogManager.Init(logConfig);
 }