c# - EventLog 实例与静态方法 - 偏好?

标签 c# event-log

在写入事件日志时,我可以创建一个 EventLog 实例,将其作为成员变量保存,并在每次我想记录消息时对其调用 WriteEntry(string message)。

或者,我可以只调用静态版本:EventLog.WriteEntry(string source, string message)。

我应该更喜欢一种选择吗?

在我目前的情况下,我打算拥有一个包含一个或两个来源的自定义日志。

最佳答案

如果您正在编写测试驱动或单元测试代码,则不建议使用静态类。

我会将 EventLog 包装在一个实现通用 ILog 接口(interface)的类中。您可以注入(inject)此类或在使用它的每个类中实例化它。如果您需要用其他日志记录方法替换 EventLog,这应该为您提供最大的灵 active 。

示例界面:

public interface ILog
{ 
        void Info(string format, params object[] args);

        void Warn(string format, params object[] args);

        void Error(Exception exception);
} 

您可以扩展或更改它以创建对您有意义的契约(Contract)。

关于c# - EventLog 实例与静态方法 - 偏好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173693/

相关文章:

c# - 哪个类在其构造函数中调用 SuppressFinalize 以致于您的 dispose 调用无用?

event-log - 搜索事件日志以找出程序被卸载的时间

deployment - 使用 Windows 兼容包部署 .NET Core 应用程序

c# - EventLog WriteEntry 不写入指定日志,而是写入应用程序日志

c# - EventLogReader 和 EventRecord : Where's the Message?

javascript - AJAX:异步将文件发布到服务器

c# - Linq 中的 DataLayer 具有不同版本的数据模型

c# - 单行 "FromValue - ToValue"(不是类,不是字典/列表/数组)。如何?

c# - 将字符串波斯日期转换为公历日期时间

c# - 访问/写入 EventLog 时出现问题