.net - 如何在应用程序启动和关闭时自动在静态类中调用方法?

标签 .net multithreading logging static

我正在编写一个静态类来记录日志,以便在我开发的解决方案中使用。有几个组件可以使用它,例如控制台应用程序,ASP.NET应用程序等。

为了使日志正常工作,需要先进行一些初始启动配置,然后才能使用它,并且还需要在每个应用程序完成后进行一些清理。

有没有一种方法可以在.NET中执行此操作而不必从解决方案中的每个应用程序中明确调用StartLog()和FinishLog()方法?或以另一种方式看待这个问题?

我一直在考虑在每个Log()方法中使用锁来检查日志记录类是否已初始化,但是性能和复杂性方面的潜在开销使我感到恐惧。

最佳答案

您可以在事物的启动端使用类型初始值设定项(例如静态构造函数)-首次使用该类时会自动调用该类型初始值设定项。

检测关闭更加困难... AppDomain.ProcessExit AppDomain.DomainUnload 可能对您来说足够了...只需订阅事件并做出相应的 react 即可。

关于.net - 如何在应用程序启动和关闭时自动在静态类中调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797881/

相关文章:

c# - 需要 WPF 线程帮助

c# - 从 TFS 获取当前迭代

c++ - 在执行 CUDA 设备代码时在同一线程中运行主机代码

c++ - 线程安全容器

intellij-idea - IntelliJ Idea 终端掉落并关闭

grails - 用于发送不返回完整堆栈跟踪的 log4j 错误的自定义电子邮件附加程序

python - 无法使用 Python 填充 WPF DataGrid

c# - WCF 终结点 : Message. WriteMessage 更改 XML 消息内的结束标记

python - 将 openMP 与 Cython 结合使用 : parallelising an inner loop

logging - 如何使用格式、参数和抛出进行日志记录?