网站大量收购闲置独家精品文档,联系QQ:2885784924

NETCore将日志输出到控制台课案.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NETCore将日志输出到控制台课案

.NET Core的日志[2]:将日志输出到控制台 对于一个控制台应用,比如采用控制台应用作为宿主的ASP.NET Core应用,我们可以将记录的日志直接输出到控制台上。针对控制台的Logger是一个类型为ConsoleLogger的对象,ConsoleLogger对应的LoggerProvider类型为ConsoleLoggerProvider,这两个类型都定义在 NuGet包“Microsoft.Extensions.Logging.Console”之中。 本文已经同步到《ASP.NET Core框架揭秘》之中] 目录 一、ConsoleLogger 二、ConsoleLogScope 三、ConsoleLoggerProvider 四、扩展方法AddConsole 一、ConsoleLogger 如下所示的代码片段展示了ConsoleLogger类型的定义。它具有四个属性,代表Logger名称的Name属性最初由ConsoleLoggerProvider提供,实际上就是LoggerFactory在创建Logger时指定的日志类型(Category)。ConsoleLogger的Console属性代表当前控制台,它的类型为IConsole接口。之所以没有直接采用System.Console向控制台输出格式化的日志消息,是因为需要提供跨平台的支持,IConsole接口表示的就是这么一个与具体平台无关的抽象化的控制台。 1: public class ConsoleLogger : ILogger 2: { 3: public string Name { get; } 4: public IConsole Console { get; set; } 5: public Funcstring, LogLevel, bool Filter { get; set; } 6: public bool IncludeScopes { get; set; } 7: 8: public ConsoleLogger(string name, Funcstring, LogLevel, bool filter, bool includeScopes); 9: public IDisposable BeginScopeTState(TState state); 10: 11: public bool IsEnabled(LogLevel logLevel); 12: public void LogTState(LogLevel logLevel, EventId eventId, TState state, Exception exception, FuncTState, Exception, string formatter); 13: public virtual void WriteMessage(LogLevel logLevel, string logName, int eventId, string message); 14: } ConsoleLogger的Filter属性通过一个委托对象来过滤真正需要写到控制台的日志消息,该属性的返回类型为Funcstring, LogLevel, bool,两个输入参数分别表示分发给它的日志消息的类型和等级,如果执行该委托对象返回False,日志消息将会被直接忽略。ConsoleLogger的IsEnabled方法会直接将指定日志等级作为参数(ConsoleLogger的Name属性作为另一个参数)调用这个委托对象得到最终的返回结果。ConsoleLogger的IncludeScopes与上面介绍的日志上下文范围有关,我们会在后续的部分对它进行单独介绍。 对于ConsoleLogger的这四个属性,除了表示当前控制台的Console属性,其余三个均可以在创建它的时候通过构造函数的相应参数来指定。接下来我们来简单了解一下表示抽象化控制台的IConsole接口,该接口具有如下三个方法。在调用Write和WriteLine方法向控制台输出内容的时候,我们除了指定写入的消息文本之外,还可以控制消息在控制台上的背景色和前景色。Flush方法与数据输出缓冲机制有关,如果采用缓冲机制,通过Write或者WriteLine方法写入的消息并不会立即输出到控制台,而是先被保存到缓冲区,Fl

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档