0

我的团队正在开发一个插件项目,其中主机应用程序协调插件工作(每个插件都有特定的功能,将在单独的线程上执行)。我正在编写主机应用程序并定义 IPlugin 接口;其他开发人员将参考我的 IPlugin 界面并开发他的插件。
我的团队提出了一个问题:一些开发人员使用 Nlog 来记录他们的插件工作,但其他开发人员使用 Log4Net。
我的问题是:如何让每个插件都可以使用它喜欢使用的日志组件?
谢谢!

4

1 回答 1

0

所以说你做一个界面:

interface ILoggerPlugin
{
    void Log(LogInfo info);
}

和一个为你提供所有信息的课程

class LogInfo
{
    public string Application;
    public Exception LoggedException;
}

现在,如果您移交接口并要求所有开发人员遵循此接口,那么所有其他位都将被抽象。插件最终用户不必知道正在使用什么作为实现。天气它的 NLog 或 Log4Net。

我们已经实现了非常类似的东西。最重要的是,我们还有一个目标变量,它指向数据库、文件和/或关键文件的电子邮件。

于 2015-04-17T07:52:57.913 回答