Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以松散耦合的方式显示ILogger_C#_Logging_Open Source_Inversion Of Control_Log4net - Fatal编程技术网

C# 以松散耦合的方式显示ILogger

C# 以松散耦合的方式显示ILogger,c#,logging,open-source,inversion-of-control,log4net,C#,Logging,Open Source,Inversion Of Control,Log4net,我是第三方服务C#开源包装的作者。我需要公开ILogger工具(例如)来记录特定的事件和错误 我可以继续添加一个主要的记录器,比如Log4Net,但我不希望包装器绑定到特定的记录器 我可以添加一个IoC容器,通过构造函数依赖注入轻松解决这个问题,但我不希望我的包装器绑定到任何特定的IoC 另一方面,如果我能够以某种方式将日志事件公开给消费应用程序(不管怎样,它是负责日志记录的应用程序),包装器对其消费者是不可知的,那就太好了 关于如何实现这一点的任何想法?项目通常会提供自己的抽象。默认记录器是捆

我是第三方服务C#开源包装的作者。我需要公开ILogger工具(例如)来记录特定的事件和错误

我可以继续添加一个主要的记录器,比如Log4Net,但我不希望包装器绑定到特定的记录器

我可以添加一个IoC容器,通过构造函数依赖注入轻松解决这个问题,但我不希望我的包装器绑定到任何特定的IoC

另一方面,如果我能够以某种方式将日志事件公开给消费应用程序(不管怎样,它是负责日志记录的应用程序),包装器对其消费者是不可知的,那就太好了


关于如何实现这一点的任何想法?

项目通常会提供自己的抽象。默认记录器是捆绑的,因此一切都是开箱即用的,但您可以轻松配置日志提供程序,如和中所示。例如:

LogManager.LogFactory = new Log4NetFactory(true);

还有一个用于解决日志框架依赖性问题的。然而,我还没有看到它在大型开源项目中被广泛使用,尽管已经有一段时间了。

为什么会有人否决这个问题?态度不错,伙计们。