在服务类中调用多个记录器模式

时间:2017-02-09 17:04:24

标签: c# logging design-patterns log4net

我们在我们的项目类log4net中使用,下面你会看到我们需要记录的时候到处使用的模式,所以我决定在我自己的接口/实现中抽象它来摆脱log4net依赖无处不在。

export class Item {
   valueA: string;
   valueB: string;
}

在某些情况下,我们在课程中使用了多个记录器。

private readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

在这种情况下,如下代码有效。

private readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private readonly ILog _backupLogger = LogManager.GetLogger("BackupLogger");

尝试考虑一种模式,在服务类中我可以添加额外的记录器,可能通过private void LogError<T>(string msg, string serverError, string debugInfo, T data) where T : class { _log.Error($"{msg} saving entry using log4net instead which must be handled manually. server error: {serverError}. api debug: {debugInfo}"); _backupLogger.Error(data.ToJson()); } 方法,然后在调用AddLogger(string loggerName)方法时调用所有可用的记录器,可以&#34;链责任&#34;或者&#34;装饰者&#34;在这里申请,似乎无法识别它。

0 个答案:

没有答案