当写入事件日志时,我可以创建一个EventLog实例,将其作为成员变量保留,并在每次要记录消息时在其上调用WriteEntry(字符串消息).
或者,我可以只调用静态版本:EventLog.WriteEntry(字符串源,字符串消息).
我是否应该选择另一种替代方案?
在我目前的情况下,我打算有一个或两个来源的自定义日志.
如果您正在编写测试驱动或单元测试代码,则不建议使用静态类.
我将EventLog包装在一个实现通用ILog接口的类中.您可以注入此类或在使用它的每个类中实例化它.如果您需要使用其他一些日志记录方法替换EventLog,这应该为您提供最佳的灵活性.
示例界面:
public interface ILog
{
void Info(string format, params object[] args);
void Warn(string format, params object[] args);
void Error(Exception exception);
}
Run Code Online (Sandbox Code Playgroud)
您可以扩展或更改此选项以创建对您有意义的合同.