NLog 包装器的生活方式 class
Lifestyle of NLog wrapper class
我有五个不同的记录器和一个包装器 class :
internal class CommonNLogResolver : ICommonLogger
{
private readonly NLog.Logger commonLog;
private readonly NLog.Logger errorLog;
private readonly NLog.Logger dataBaseLog;
private readonly NLog.Logger logExceptionLogger;
private readonly NLog.Logger clientLogger;
public CommonNLoggerResolver()
{
commonLog = NLog.LogManager.GetLogger(Constants.CommonLog);
errorLog = NLog.LogManager.GetLogger(Constants.ErrorLog);
dataBaseLog = NLog.LogManager.GetLogger(Constants.DBLog);
logExceptionLogger = NLog.LogManager.GetLogger(Constants.LogExceptionLog);
clientLogger = NLog.LogManager.GetLogger(Constants.ReportLog);
}
}
我查看了 NLog 中的 LogFactory.cs,因为它有记录器的缓存,所以我不知道哪种生活方式适合我的包装器 class。
所以我的问题是我应该注册这个 class singleton , transient 还是 scope?
我也在使用 SimpleInjector 进行依赖注入。
NLog 是线程安全的,因此您可以安全地重用您的记录器。你可以让它成为单例。
我有五个不同的记录器和一个包装器 class :
internal class CommonNLogResolver : ICommonLogger
{
private readonly NLog.Logger commonLog;
private readonly NLog.Logger errorLog;
private readonly NLog.Logger dataBaseLog;
private readonly NLog.Logger logExceptionLogger;
private readonly NLog.Logger clientLogger;
public CommonNLoggerResolver()
{
commonLog = NLog.LogManager.GetLogger(Constants.CommonLog);
errorLog = NLog.LogManager.GetLogger(Constants.ErrorLog);
dataBaseLog = NLog.LogManager.GetLogger(Constants.DBLog);
logExceptionLogger = NLog.LogManager.GetLogger(Constants.LogExceptionLog);
clientLogger = NLog.LogManager.GetLogger(Constants.ReportLog);
}
}
我查看了 NLog 中的 LogFactory.cs,因为它有记录器的缓存,所以我不知道哪种生活方式适合我的包装器 class。
所以我的问题是我应该注册这个 class singleton , transient 还是 scope?
我也在使用 SimpleInjector 进行依赖注入。
NLog 是线程安全的,因此您可以安全地重用您的记录器。你可以让它成为单例。