我计划稍后在我的应用程序中实现 log4net,但目前不可能。将有向新技术的软迁移,但这需要时间。因此我必须使用专有的日志机制。
但是当我实现新功能时,我希望为以后的迁移做好准备。所以我想有一个自己的类来实现 ILog 接口,这样我以后就可以切换到 log4net 而无需更改新功能。此类当前将映射到专有日志机制,稍后将过时。
我的问题是:由于我的项目中没有 log4net 程序集,但我没有 ILog 接口。当我创建自己的 ILog 接口时,它具有完全相同的方法和签名,以后交换时是否兼容?
它不会兼容。但是为实现您的ILog
接口的 log4net 创建一个瘦包装器将是微不足道的。
我会定义自己的记录器接口,类似于 log4net,但可能更专业一些。然后我会将接口实现为专有记录器。当需要迁移到 log4net 时,我会编写一个新的实现——一个 log4net 包装器。
如果您定义的接口不仅与在 log4net 程序集中定义的接口相同,而且在相同的命名空间中定义,它将是兼容的。当你开始使用 log4net - 只需删除这个自己的接口声明(及其实现)