- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 出入量监测的意义和方法-PPT(精).ppt
- 出入口控制系统工程设计规范(GB50396-2007).ppt
- M_5工程能力分析.ppt
- 出口免抵退税.ppt
- 出厂模具验收单.doc
- 凯美瑞混合动力诊断.ppt
- MySQL数据库培训手册(附:国产三大数据库).docx
- NAO机器人.docx
- NBNC-GYGLZD-TY-021-01城轨车辆布线规范课案.doc
- 凤城市凤北加油站.doc
- 2024续签合同申请报告——关键业绩指标更新3篇.docx
- 2024续签合同范本:电子商务平台运营合作协议3篇.docx
- 2024续签合同个人意向书编制标准与注意事项3篇.docx
- 2024续签合同范本.docx
- 2024续签合同个人意向书范本编写与合同效力确认3篇.docx
- 2024续签电子商务平台合作协议意向书范本3篇.docx
- 2024续签劳动合同范本:应对行业变革的员工权益保护策略3篇.docx
- 2024续签合同申请报告——健康医疗产业合作续约3篇.docx
- 2024续签劳动合同范本:聚焦员工权益保障与合规管理3篇.docx
- 2024续签劳动合同范本:助力企业实现人力资源优化3篇.docx
文档评论(0)