asp.net-core – 针对每个记录器定位不同的提供程序
发布时间:2020-12-16 09:19:56 所属栏目:asp.Net 来源:网络整理
导读:是否无法根据使用的记录器来定位不同的日志记录提供程序? 例如,请参阅以下代码: // Establish loggersvar someLogger = loggerFactory.CreateLogger("SomeLogger");var anotherLogger = loggerFactory.CreateLogger("AnotherLogger");// Hook up providers
是否无法根据使用的记录器来定位不同的日志记录提供程序?
例如,请参阅以下代码: // Establish loggers var someLogger = loggerFactory.CreateLogger("SomeLogger"); var anotherLogger = loggerFactory.CreateLogger("AnotherLogger"); // Hook up providers (but not at the individual logger's level??) loggerFactory.AddDebug(minimumLevel: LogLevel.Debug); loggerFactory.AddConsole(minimumLevel: LogLevel.Debug); loggerFactory.AddBlob(connectionString,minimumLevel: LogLevel.Information); // Log stuff someLogger.LogError("Logging with someLogger"); anotherLogger.LogError("Logging with anotherLogger"); 无论使用哪种记录器,所有提供者都将在此处记录. 这真的不可能吗?如果所有记录器都记录到每个提供者,那么定义单独的记录器有什么意义呢? 解决方法
我不确定这是否可行,但您可以做的是将不同日志级别的日志消息记录到不同的提供商.以下示例使用SourceSwitch API将所有警告级别消息及更高级别消息记录到事件日志中.这里可能满足您需求的用例是您可能不希望信息或调试消息填满您的事件日志.
private static void ConfigureLogging(ILoggerFactory loggerFactory) { var sourceSwitch = new SourceSwitch("EventLog"); sourceSwitch.Level = SourceLevels.Warning; loggerFactory.AddTraceSource(sourceSwitch,new EventLogTraceListener("Application")); } UPDATE ASP.NET 5目前的示例非常简单,但ILoggerFactory上的AddProvider方法用于添加特定于它的自定义提供程序: /// <summary> /// Used to create logger instances of the given name. /// </summary> public interface ILoggerFactory : IDisposable { /// <summary> /// The minimum level of log messages sent to registered loggers. /// </summary> LogLevel MinimumLevel { get; set; } /// <summary> /// Creates a new ILogger instance of the given name. /// </summary> /// <param name="categoryName"></param> /// <returns></returns> ILogger CreateLogger(string categoryName); void AddProvider(ILoggerProvider provider); } 所以你可以创建另一个ILoggerFactory但注册不同的提供者.然后根据您要登录的位置将正确的ILoggerFactory注入到类中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何更新实体框架连接字符串
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automap
- asp.net-mvc – mvc4 new {vs new object {
- asp.net-mvc – 在MVC文件上传中Request.files为空
- asp.net-mvc-3 – 无法加载文件或程序集’StructureMap,Ver
- entity-framework – 术语’scaffold-dbcontext’不被识别为
- 记一道毫无思路的算法题
- 即使ReadOnly设置为false,ASP.NET GridView中的CheckBoxFie
- asp.net-mvc – 如何全局化ASP.NET MVC视图(特别是小数分隔
- 在asp.net MVC Javascript事件中没有命中断点
推荐文章
站长推荐
- asp.net-mvc – 用于Javascript文件的MVC Route
- asp.net – 仅包含所需参数的自定义MembershipUs
- ASP.NET中的Application和Cache有什么区别?
- 无法从ASP.NET登录页面访问CSS文件
- asp.net – 在Web API中获取匹配的路由名称
- asp.net – 实现安全的“记住我”的最佳实践
- asp.net-mvc – ASP.NET MVC URL解码
- asp.net-mvc – ASP.Net MVC加载进度指标
- asp.net-mvc – @ Html.ActionLink如何添加一个查
- asp.net – 用于检索用户名的IPrincipal或Member
热点阅读