如何确保在DLL(C#和Serilog)中刷新/关闭日志文件

问题描述 投票:0回答:1

我目前正在尝试使用Serilog登录到文件和控制台,主要是为了调试我正在研究的小型C#DLL。

我不确定如何进行刷新/关闭日志文件,即:

Log.CloseAndFlush()

我可以在析构函数中进行此操作,但其他堆栈溢出文章认为这是不明智的,因为不能保证其执行。

其他要点:DLL类未公开公开Serilog日志。如果该类是静态的怎么办? (不是,但我对其中的含义感到好奇)。

我不太确定该怎么做。任何帮助表示赞赏。

BTW:我不是特别精通C#,但是正在尝试改进,因此请原谅我的任何天真。

c# dll serilog
1个回答
0
投票

通常,当我们有一些使用资源的类时,我们实现IDisposable接口。 https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose

这里我认为该文件是非托管资源。

现在,假设您的dll中有一个使用Logger的类。它可以被视为一种资源。

因此,在Dispose函数中,您可以冲洗和关闭。

然后,在您的源代码中,使用using关键字初始化对象。当代码脱离using块时,将调用Dispose方法,并刷新并关闭记录器

© www.soinside.com 2019 - 2024. All rights reserved.