gpt4 book ai didi

c# - 使用 C# 类库中的事件实现日志记录功能 - 这是好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 22:11:47 25 4
gpt4 key购买 nike

我面临着在我的 C# 类库中实现日志记录的挑战,它是一个领域模型。我的主要目标是使日志记录功能尽可能规范和解耦。通常日志消息会被写入文件,并可能在调试时写入输出窗口。

目前我使用 log4net,我编写了一个静态 Logger 类,它自己实现了日志记录方法。因此,当执行域对象中的方法时,它们会调用静态 Logger.Log() 方法。

虽然这种包装足以抚慰我的纯粹冲动,但我想知道通过事件实现所有这些日志记录调用并从类库中完全删除日志记录实现细节是否是个好主意。然后,客户端代码可以选择监听它们并从一些 LogEventArgs 中提取有用的信息。

那么问题是:

Event-based logging in general, and specifically in class libraries, is a good idea or not? And why?

感谢阅读。

最佳答案

使用事件进行日志记录也会引入很多内存泄漏的可能性!

我会使用依赖注入(inject)来处理横切问题,例如日志记录。

借助 DI,您可以将其注入(inject)或使用拦截。

关于c# - 使用 C# 类库中的事件实现日志记录功能 - 这是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20072408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com