我目前正在尝试使用Serilog登录到文件和控制台,主要是为了调试我正在研究的小型C#DLL。
我不确定如何进行刷新/关闭日志文件,即:
Log.CloseAndFlush()
我可以在析构函数中进行此操作,但其他堆栈溢出文章认为这是不明智的,因为不能保证其执行。
其他要点:DLL类未公开公开Serilog日志。如果该类是静态的怎么办? (不是,但我对其中的含义感到好奇)。
我不太确定该怎么做。任何帮助表示赞赏。
BTW:我不是特别精通C#,但是正在尝试改进,因此请原谅我的任何天真。
通常,当我们有一些使用资源的类时,我们实现IDisposable接口。 https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose
这里我认为该文件是非托管资源。
现在,假设您的dll中有一个使用Logger的类。它可以被视为一种资源。
因此,在Dispose函数中,您可以冲洗和关闭。
然后,在您的源代码中,使用using
关键字初始化对象。当代码脱离using块时,将调用Dispose方法,并刷新并关闭记录器