我的团队正在开发一个插件项目,其中主机应用程序协调插件工作(每个插件都有一个特定的功能,将在一个单独的线程上执行)。我正在编写Host应用程序并定义IPlugin接口;其他开发人员将参考我的IPlugin界面并开发他的插件 并且我的团队遇到了问题:一些开发人员使用Nlog来记录他们的插件工作,但其他开发人员使用Log4Net。 我的问题是:如何让每个插件都可以使用它喜欢使用的日志记录组件? 谢谢!
答案 0 :(得分:0)
所以说你做了一个界面:
interface ILoggerPlugin
{
void Log(LogInfo info);
}
以及所有信息的课程
class LogInfo
{
public string Application;
public Exception LoggedException;
}
现在,如果您切换接口并要求所有开发人员遵循这一点,那么所有其他位将被抽象。插件最终用户不必知道正在使用什么作为实现。天气NLog或Log4Net。
我们已经实现了非常类似的东西。最重要的是,我们还有一个目标变量指向数据库,一个文件和/或电子邮件用于关键数据。