NET Core 将日志输出到控制台

NET Core 将日志输出到控制台

ID:39466518

大小:49.50 KB

页数:10页

时间:2019-07-04

NET Core 将日志输出到控制台_第1页
NET Core 将日志输出到控制台_第2页
NET Core 将日志输出到控制台_第3页
NET Core 将日志输出到控制台_第4页
NET Core 将日志输出到控制台_第5页
资源描述:

《NET Core 将日志输出到控制台》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.NETCore的日志[2]:将日志输出到控制台对于一个控制台应用,比如采用控制台应用作为宿主的ASP.NETCore应用,我们可以将记录的日志直接输出到控制台上。针对控制台的Logger是一个类型为ConsoleLogger的对象,ConsoleLogger对应的LoggerProvider类型为ConsoleLoggerProvider,这两个类型都定义在NuGet包“Microsoft.Extensions.Logging.Console”之中。本文已经同步到《ASP.NETCore框架揭秘》之中]目录一、ConsoleLogger二、ConsoleLogScope三、

2、ConsoleLoggerProvider四、扩展方法AddConsole一、ConsoleLogger如下所示的代码片段展示了ConsoleLogger类型的定义。它具有四个属性,代表Logger名称的Name属性最初由ConsoleLoggerProvider提供,实际上就是LoggerFactory在创建Logger时指定的日志类型(Category)。ConsoleLogger的Console属性代表当前控制台,它的类型为IConsole接口。之所以没有直接采用System.Console向控制台输出格式化的日志消息,是因为需要提供跨平台的支持,IConsole接口表

3、示的就是这么一个与具体平台无关的抽象化的控制台。1:publicclassConsoleLogger:ILogger2:{3:publicstringName{get;}4:publicIConsoleConsole{get;set;}5:publicFuncFilter{get;set;}6:publicboolIncludeScopes{get;set;}7:8:publicConsoleLogger(stringname,Funcfilter,boolincludeScopes);9

4、:publicIDisposableBeginScope(TStatestate);10:11:publicboolIsEnabled(LogLevellogLevel);12:publicvoidLog(LogLevellogLevel,EventIdeventId,TStatestate,Exceptionexception,Funcformatter);13:publicvirtualvoidWriteMessage(LogLevellogLevel,stringlogName,intev

5、entId,stringmessage);14:}ConsoleLogger的Filter属性通过一个委托对象来过滤真正需要写到控制台的日志消息,该属性的返回类型为Func,两个输入参数分别表示分发给它的日志消息的类型和等级,如果执行该委托对象返回False,日志消息将会被直接忽略。ConsoleLogger的IsEnabled方法会直接将指定日志等级作为参数(ConsoleLogger的Name属性作为另一个参数)调用这个委托对象得到最终的返回结果。ConsoleLogger的IncludeScopes与上面介绍的日志上下文范围有

6、关,我们会在后续的部分对它进行单独介绍。对于ConsoleLogger的这四个属性,除了表示当前控制台的Console属性,其余三个均可以在创建它的时候通过构造函数的相应参数来指定。接下来我们来简单了解一下表示抽象化控制台的IConsole接口,该接口具有如下三个方法。在调用Write和WriteLine方法向控制台输出内容的时候,我们除了指定写入的消息文本之外,还可以控制消息在控制台上的背景色和前景色。Flush方法与数据输出缓冲机制有关,如果采用缓冲机制,通过Write或者WriteLine方法写入的消息并不会立即输出到控制台,而是先被保存到缓冲区,Flush方法被执行的

7、时候会将缓冲区的所有日志消息批量输出到控制台上。1:publicinterfaceIConsole2:{3:voidWrite(stringmessage,ConsoleColor?background,ConsoleColor?foreground);4:voidWriteLine(stringmessage,ConsoleColor?background,ConsoleColor?foreground);5:voidFlush();6:}微软默认提供了两种类型的Console类型,一种是基于Wind

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。