我对.NET栈有些陌生,我想知道是否有一个等价于.NET平台的slf4j。对我来说,登录到Facade并能够根据需要交换日志实现是有意义的。此外,slf4j中提供的 Package 器API多次帮助我避免了使用第三方库,该库是针对单个日志框架编写的,而我并没有使用它。t使用。
是否有一个项目在log4net,nLog和Enterprise Library等日志记录器之间充当门面?是否有 Package 器允许我快捷调用这些库并将它们定向到另一个库?我应该开始一个开源项目来自己做这件事吗?这个问题是重复的,因为我不知道正确的提问方式吗?相反,使用面向方面编程的常见方法是这样做的吗?
8条答案
按热度按时间js5cn81o1#
对不起,我用了这个东西,我忘了它不是Apache版本。它实际上是开源的,是一个名为公共基础设施的项目的一部分。它也被称为common logging。它与MS Enterprise,log4net和其他人一起工作。它运行良好。
vwhgwdsa2#
看看城堡温莎Logging Facility。
基本代码是here.Log4net适配器here.NLog适配器here。
为Serilog添加适配器。
如果没有适配器,则支持ConsoleLogger、DiagnosticsLogger、StreamLogger和NullLogger。
为任何其他日志框架编写适配器都非常容易。
kmpatx3s3#
我加入了Simple Logging Facade,因为它看起来支持The Object Guy's Logging Framework for .Net。
kxe2p93d4#
.NET Core更新:
lf5gs5x25#
我也遇到了同样的问题。在经历了上面推荐的那些之后,我发现**Ninject.Extensions.Logging**
这很好,因为无论如何,facade与DI结合使用最有意义
自带NLog、NLog2和log4net代理。
下面是一个很好的例子,说明如何将它与NLog结合使用:http://blog.tonysneed.com/2011/10/09/using-nlog-with-dependency-injection/
xlpyo6sf6#
自从写了这篇文章,另一个有趣的日志记录 Package 器Fody.Anotar出现了。截至今天,它可能是所有这些 Package 器中最完整的。其他大多数,但Logging Faciliy,都非常过时,只支持最老的日志记录器。
它有NLog,Log4Net,Serilog,CommongLogging,Catel,LibLog,MetroLog,NServiceBus和Splat的适配器,并允许您为自己的库创建适配器。
您可以使用Nuget安装它。查找Anotar.*.Fody包,例如Anotar.NLog.Fody。
o2rvlv0m7#
我发现这里的所有解决方案都不令人满意,尤其是库/API。虽然我从来没有想过我会这样做,但我实际上写了一个开源的“日志”,它应该可以处理大多数问题。
也许你可以看看Dapplo.Log,你可以从NuGet得到它。
我们的想法是在你的库中使用Dapplo.Log,使用它的项目可以将任何日志输出定向(在需要时)到他们选择的记录器。在测试中可以找到定向输出的例子,以及一些主要框架here的实现。
它可能还不完美,我欢迎拉请求或门票。
alen0pnh8#
发现自己处于这种情况下,我花了一些时间阅读所有的答案并研究一个好的解决方案。大多数提议的堆栈/框架/抽象现在都很旧,要么目前没有维护,要么不再流行。
然后,我遇到了LibLog,现在已被弃用,其自述文件明确推荐
Microsoft.Extensions.Logging.Abstractions
“*,因为它现在是.NET生态系统中事实上的标准日志接口 *"。(For记录
Microsoft.Extensions.Logging.Abstractions
现在包含在ASP.NET日志中.NET运行时after it was moved there中)