当前位置: 首页 > news >正文

做网站公司需要什么职位高端建站是什么

做网站公司需要什么职位,高端建站是什么,枣庄市建设项目环评备案网站,无锡 网站建设在本章中#xff0c;也就是整个系列的第一部分将介绍如何定制日志记录(系列内容查阅《玩转ASP.NET 6.0框架-序言》)。默认日志记录仅写入控制台或调试窗口#xff0c;这在大多数情况下都很好#xff0c;但有时需要写入到文件或数据库#xff0c;或者#xff0c;您可能希望… 在本章中也就是整个系列的第一部分将介绍如何定制日志记录(系列内容查阅《玩转ASP.NET 6.0框架-序言》)。默认日志记录仅写入控制台或调试窗口这在大多数情况下都很好但有时需要写入到文件或数据库或者您可能希望扩展日志记录的其他信息。在这些情况下您需要知道如何更改默认日志记录。在本章我们将介绍以下主题配置日志记录创建自定义日志记录使用第三方日志框架以上主题涉及ASP.NET Core框架的Host层。技术要求为了演示我们创建一个ASP.NET Core MVC应用程序。请打开控制台、shell或Bash终端然后切换到工作目录然后使用以下命令创建新的应用程序dotnet new mvc -n LoggingSample -o LoggingSample在Visual Studio中双击打开该项目或者在控制台中键入以下命令用Visual Studio Code打开该项目cd LoggingSample code .配置日志记录在ASP.NET Core的早期版本中即2.0版之前的版本日志记录是在Startup.cs配置的。之后Startup.cs文件慢慢简化许多配置被移动到Program.cs的WebHostBuilder日志记录也是在这个时候被移动到WebHostBuilder。在ASP.NET Core 3.1及更高版本的程序,Program.cs文件变得更加通用IHostBuilder将最先创建它是引导应用启动的关键我们将在后面详解IHostBuilder通过IHostBuilder我们可以创建IWebHostBuilder用以配置ASP.NET Corepublic class Program { public static void Main(string[] args){ CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder { webBuilder.UseStartupStartup();}); }在ASP.NET Core 6.0中Microsoft引入了简化配置的迷你APIminimal API方法。这种方法不使用Startup文件而是将所有配置添加到Program.cs文件如下代码段var builder WebApplication.CreateBuilder(args); //添加服务到容器. builder.Services.AddControllersWithViews(); var app builder.Build(); …在ASP.NET Core您可以覆盖和自定义几乎所有内容包括日志记录。IWebHostBuilder有很多扩展方法允许我们覆盖不同功能的默认行为。要覆盖日志记录的默认设置我们需要使用ConfigureLogging方法。以下代码片段显示的日志记录与上面的ConfigureWebHostDefaults()方法中配置的日志记录几乎完全相同Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder { webBuilder.ConfigureLogging((hostingContext, logging) {logging.AddConfiguration(hostingContext.Configuration.GetSection(Logging)); logging.AddConsole(); logging.AddDebug(); }).UseStartupStartup();使用minimal API方法我们不再需要ConfigureLogging方法我们可以直接使用WebApplicationBuilder的Logging属性builder.Logging.AddConfiguration(builder.Configuration.GetSection(Logging)); builder.Logging.AddConsole(); builder.Logging.AddDebug();现在我们已经了解了如何配置日志记录接下来我们看看如何自定义日志记录。创建自定义日志记录为了演示我们这里创建一个小而简单的日志记录器它能够在控制台中使用特定的日志级别对日志条目进行着色。此日志记录称为ColoredConsoleLogger它会使用LoggerProvider创建。要指定颜色和日志级别我们还需要添加一个配置类Configuration。在接下来的代码片段中将分别创建这三个关键类Configuration、LoggerProvider和Logger1.ColoredConsoleLoggerConfiguration我们创建一个名为CustomLogger.cs的文件中它与Program.cs位于同一文件夹中我们在CustomLogger.cs中创建ColoredConsoleLoggerConfiguration该配置类包含三个可设置的属性LogLevel、EventId和Colorpublic class ColoredConsoleLoggerConfiguration { public LogLevel LogLevel { get; set; } LogLevel.Warning; public int EventId { get; set; } 0; public ConsoleColor Color { get; set; } ConsoleColor.Yellow; }2.ColoredConsoleLoggerProvider接下来我们需要一个提供程序来检索配置并创建实际的日志记录实例public class ColoredConsoleLoggerProvider : ILoggerProvider { private readonly ColoredConsoleLoggerConfiguration _config; private readonly ConcurrentDictionarystring, ColoredConsoleLogger _loggers new ConcurrentDictionarystring,ColoredConsoleLogger(); public ColoredConsoleLoggerProvider (ColoredConsoleLoggerConfiguration config) { _config config; } public ILogger CreateLogger(string categoryName) { return _loggers.GetOrAdd(categoryName,name new ColoredConsoleLogger(name, _config)); }public void Dispose() {_loggers.Clear(); } }不要忘记引入System.Collections.Concurrent3.ColoredConsoleLogger第三类是我们真正使用的日志记录器public class ColoredConsoleLogger : ILogger {private static readonly object _lock new Object();private readonly string _name;private readonly ColoredConsoleLoggerConfiguration _config;public ColoredConsoleLogger(string name,ColoredConsoleLoggerConfiguration config){_name name;_config config;}public IDisposable BeginScopeTState(TState state){return null;}public bool IsEnabled(LogLevel logLevel){return logLevel _config.LogLevel;}public void LogTState(LogLevel logLevel,EventId eventId,TState state,Exception exception,FuncTState, Exception, string formatter){if (!IsEnabled(logLevel)){return;}lock (_lock){if (_config.EventId 0 || _config.EventId eventId.Id){var color Console.ForegroundColor;Console.ForegroundColor _config.Color;Console.Write(${logLevel} - );Console.Write(${eventId.Id} - {_name} - );Console.Write(${formatter(state, exception)}\n);Console.ForegroundColor color;}}} }我们现在需要lock(锁定) 控制台的输出——这是因为控制台本身并不是真正的线程安全的可能出现错误的着色。完成后我们可以将新的记录插入到Program.cs的配置中。using LoggingSample;builder.Logging.ClearProviders(); var config new ColoredConsoleLoggerConfiguration {LogLevel LogLevel.Information,Color ConsoleColor.Red }; builder.Logging.AddProvider(new ColoredConsoleLoggerProvider(config));首先需要向引入LoggerSample命名空间。using LoggingSample;如果不想使用现有的日志框架可以清除之前添加的所有日志框架提供程序builder.Logging.ClearProviders();然后我们调用AddProvider来添加ColoredConsoleLoggerProvider实例。这里配置了不同的日志级别您可以使用这种方法发送有关错误的电子邮件或者将调试消息记录到别的日志接收器等等。下图显示了日志框架的彩色输出在许多时候编写自定义日志框架是没有意义的因为已经有许多优秀的第三方日志记录框架可用例如ELMAH、log4net和NLog。下面我们将介绍如何在ASP.NET Core中使用NLog。使用第三方日志框架NLogNLog是最早的一款可用于ASP.NET Core的日志框架NLog提供了一个日志记录提供程序插件可以方便地插入ASP.NET Core。你可以通过NuGet找到NLog1.配置Nlog我们需要添加一个NLog.Config配置文件用于定义两个不同的日志记录所有标准消息记录在一个日志文件中而自定义消息记录在另一个文件中targets!-- 标准消息 --target xsi:typeFile nameallfile fileNameC:\git\dotnetconf\001-logging\nlog-all-${shortdate}.loglayout${longdate}|${event-properties:itemEventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception} /!-- 自定义消息 --target xsi:typeFile nameownFile-web fileNameC:\git\dotnetconf\001-logging\nlog-own-${shortdate}.loglayout${longdate}|${event-properties:itemEventId.Id}|${logger}|${uppercase:${level}}| ${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action} /target xsi:typeNull nameblackhole //targets!-- rules to map from logger name to target --rules!--All logs, including from Microsoft--logger name* minlevelTrace writeToallfile /!--Skip Microsoft logs and so log only own logs--logger nameMicrosoft.* minlevelTrace writeToblackhole finaltrue /logger name* minlevelTrace writeToownFile-web //rules2.引入NuGet包然后我们需要NuGet添加NLog的ASP.NET Core包dotnet add package NLog.Web.AspNetCore3.将NLog与IWebHostBuilder结合使用清除ConfigureLogging方法中的其他提供程序使用UseNLog()方法将NLog与IWebHostBuilder结合使用Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder { webBuilder.ConfigureLogging((hostingContext,logging) { //清除其他提供程序 logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); }).UseNLog().UseStartupStartup(); });使用minimal API看起来简单得多using NLog.Web; var builder WebApplication.CreateBuilder(args); //清除其他提供程序 builder.Logging.ClearProviders(); builder.Logging.SetMinimumLevel(LogLevel.Trace); builder.WebHost.UseNLog();在这里您可以根据需要添加任意多个日志记录提供程序。回顾 思考现在让我们回顾一下本文所涵盖的内容配置日志记录创建自定义日志记录使用第三方日志框架思考我们应该如何自定义应用的配置欢迎关注下篇内容《如何自定义.NET 6.0的应用配置》。
http://www.sadfv.cn/news/240401/

相关文章:

  • 网站开发软件公司南昌seo排名
  • 苏州公司建设网站制作网页界面设计的要求是什么
  • 酒店网站建设目标合肥房产备案查询官网
  • wordpress建站案例萍乡做网站的
  • 建设糖果网站的好处有哪些除了58还有什么信息发布平台
  • 微网站建设第一步是进行什么的设置管廊建设网站
  • 网站如何申请微信支付功能东营网站seo服务
  • 成都 直播 网站建设门户网站 模板之家
  • 一个专门做试题的网站怎么网站搜索排名优化
  • 制作网站去哪家好农业公园网站建设
  • 合肥网站建设工作室军棋是哪个网站开发的
  • 浙江省网站备案肥西县城乡建设局网站
  • 河北省建设执业资格中心网站求个网站知乎
  • 网站icp备案咋做中关村在线产品报价
  • 可以免费建设网站吗网站页面统计代码是什么意思
  • 无锡网站定制公司华为云wordpress淘宝
  • 大气宽屏的网站做导航网站有发展吗
  • 浙江省工程建设监理管理协会网站免费ppt模板 网站开发
  • 添加书签网站代码人气最旺的传奇手游
  • 广东seo网站设计价格重庆綦江网站制作公司电话
  • 要建网站怎么做163企业邮箱登陆
  • 长春建设网站公司网站制作用的软件有哪些
  • 网站欢迎页源码网站建设推广熊掌号
  • 平板电脑 做网站开发唐山培训网站建设
  • 做一个网站需要多少钱大概网站开发建设企业
  • 女士手表网站公司注册资金一览表
  • 做网站搞友情链接wordpress菜单 链接
  • 优秀电商网站设计wordpress 多媒体插件
  • 给关亨做网站的设计公司泰州网站设计公司
  • 网络会议网站如果做淘宝网站