使用ServiceStack.Logging.NLog而不是直接NLog调用有什么缺点?

MiF*_*vil 1 logging nlog servicestack

我喜欢NLOG由于描述的多种原因  https://robertmccarter.com/switching-to-nlog  和

log4net与Nlog

但是我考虑   https://github.com/ServiceStack/ServiceStack  和 https://nuget.org/packages/ServiceStack.Logging.NLog以保持通用接口和将来切换到其他提供商的能力.

是否有人知道使用ServiceStack.Logging.NLog而不是直接NLog调用的任何缺点/限制?

它会导致任何重要的性能下降吗?

直接调用NLog记录器时是否可以使用任何功能,但ServiceStack不支持?

MiF*_*vil 5

我比较了   ServiceStack ILog   , Common.Logging/ILog   和   NLog/Logger.cs ,发现NLog有更多的重载,这使它更加类型安全.如果禁用特定记录的日志记录,NLog也有逻辑不处理格式化. 

基于此,我决定使用通用日志记录界面是YAGNI.如果我要编写库以在多个使用可能不同的日志库的应用程序中使用,那么ServiceStack是一种可行的方法.

但是在应用程序开发中,不需要立即支持多个日志记录框架,直接调用Nlog会更有效.如果将来决定切换到其他提供商,全局替换更改以调用ServiceStack或直接新提供商应该相对容易.