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

企业网站优化徽号liu7yin出本词效果抖快均可做a7网站怎么做百度关键字搜索

企业网站优化徽号liu7yin出本词效果抖快均可做a7,网站怎么做百度关键字搜索,山西seo优化,北京网页设计公司兴田德润专业引言 不管你是开发单体应用还是微服务应用#xff0c;在实际的软件的开发、测试和运行阶段#xff0c;开发者都需要借助日志来定位问题。因此一款好的日志组件将至关重要#xff0c;在.NET 的开源生态中#xff0c;目前主要有Serilog、Log4Net和NLog三款优秀的日志组件在实际的软件的开发、测试和运行阶段开发者都需要借助日志来定位问题。因此一款好的日志组件将至关重要在.NET 的开源生态中目前主要有Serilog、Log4Net和NLog三款优秀的日志组件但相较而言NLog功能更加强大且扩展性强允许开发者在仅修改配置文件的方式来丰富日志输出内容支持多种日志格式包括XML、JSON、YAML等支持多种输出目标包括文件、数据库、控制台、Loki、ElasticSearch等支持自定义日志格式支持日志级别支持异步写入等功能。 NLog 日志组件的使用 那在实际使用中如何集成呢接下来以ASP.NET Core 应用为例进行详细讲解。 创建示例项目控制台执行dotnet new mvc -n NLog.Demo创建示例应用。安装NLog 日志组件进入项目内部控制台执行dotnet add package NLog.Web.AspNetCore添加NLog.Web.AspNetCoreNuGet 包。添加NLog 配置文件官方提供两种方式用来添加配置一种是添加nlog.config文件使用xml格式进行配置一种是直接在appsettings.json文件中使用json格式进行配置这里推荐使用json格式配置以便和ASP.NET Core现有的配置体系对齐。在appsettings.json中添加NLog配置节点如下所示该配置将Info及以上级别的日志输出到控制台将Debug及以上级别的日志输出到App_Data/Logs目录。 {  Logging: {    LogLevel: {      Default: Information,      Microsoft.AspNetCore: Warning    }  },  AllowedHosts: *,  NLog: {    throwConfigExceptions: true,    variables: {      logDirectory: ${basedir}/App_Data/Logs    },    extensions: [      {        assembly: NLog.Web.AspNetCore      }    ],    targets: {      async: true,      logfile: {        type: File,        encoding: utf-8,        fileName: ${logDirectory}/${shortdate}/${logger}.${level}.log      },      logconsole: {        type: Console      }    },    rules: [      {        logger: *,        minLevel: Info,        writeTo: logconsole      },      {        logger: *,        minLevel: Debug,        writeTo: logfile      }    ]  }} 配置NLog 日志组件修改Program.cs如下 using NLog.Extensions.Logging;using NLog.Web;var builder  WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllersWithViews();//配置从配置文件的NLog 节点读取配置var nlogConfig  builder.Configuration.GetSection(NLog);NLog.LogManager.Configuration  new NLogLoggingConfiguration(nlogConfig);//清空其他日志Providersbuilder.Logging.ClearProviders();//该配置用来指定使用ASP.NET Core 默认的日志过滤器var nlogOptions  new NLogAspNetCoreOptions() { RemoveLoggerFactoryFilter  false };builder.Host.UseNLog(nlogOptions); //启用NLogvar app  builder.Build();// 省略其他代码 打印日志修改HomeController中的IndexAction添加日志 using System.Diagnostics;using Microsoft.AspNetCore.Mvc;using NLog.Demo.Models;namespace NLog.Demo.Controllers;public class HomeController : Controller{    private readonly ILoggerHomeController _logger;    public HomeController(ILoggerHomeController logger)    {        _logger  logger;    }    public IActionResult Index()    {        _logger.LogInformation(Hello {user}, this is NLog., new { id  1, name  Shengjie });        return View();    }} 运行项目日志将按照上方配置输出到控制台和指定目录。 如果此时想按环境控制日志输出等级仅需修改对应环境的配置文件即可比如修改appsettings.Development.json中的Logging节点配置如下即可输出所有以Microsoft.AspNetCore为前缀Information以上级别的日志 Logging: {    LogLevel: {      Default: Information,      Microsoft.AspNetCore: Information    }  } 修改后即可输出前缀为Microsoft.AspNetCore的日志如下所示从中可以看出该日志是使用|分割使用的是默认的日志布局TextLayout配置为${longdate}|${level:uppercasetrue}|${logger}|${message:withexceptiontrue}。 2023-03-01 10:00:38.7022|INFO|Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker|Executed action NLog.Demo.Controllers.HomeController.Index (NLog.Demo) in 94.5297ms  这种日志的好处是开发环境查看比较直观但是因为缺失了字段信息收集后不便分析那如何调整为结构化的日志结构呢简单使用JsonLayout即可修改NLog:targets:logconsole节点添加layout节点配置即可如下所示     targets: {      async: true,      logconsole: {        type: Console,        layout: {          type: JsonLayout,          attributes: [            {              name: timestamp,              layout: ${date}            },            {              name: app,              layout: ${processname}            },            {              name: env,              layout: ${environment:ASPNETCORE_ENVIRONMENT}            },            {              name: level,              layout: ${level}            },            {              name: logger,              layout: ${logger}            },            {              name: message,              layout: ${message}            },            {              name: exception,              layout: ${exception:formattoString}            },            {              name: aspnet-request-method,              layout: ${aspnet-request-method}            },            {              name: aspnet-request-url,              layout: ${aspnet-request-url}            },            {              name: aspnet-mvc-controller,              layout: ${aspnet-mvc-controller}            },            {              name: aspnet-mvc-action,              layout: ${aspnet-mvc-action}            }          ]        }      }    } 重新运行就可以得到Json结构化的日志结构日志输出举例如下 {    timestamp: 2023/03/01 13:25:11.912,    app: NLog.Demo,    env: Development,    level: Info,    logger: NLog.Demo.Controllers.HomeController,    message: Hello { id  1, name  Shengjie }, this is NLog.,    aspnet-request-method: GET,    aspnet-request-url: https://localhost/,    aspnet-mvc-controller: Home,    aspnet-mvc-action: Index} 其中app字段是通过NLog预置的${processname}字段获取env字段是通过${environment}从指定的环境变量获取以aspnet-为前缀的字段则是通过NLog.Web.AspNetCore中预置的字段中获取因此在配置NLog时要在NLog节点下加入extensions配置。 NLog: {  throwConfigExceptions: true,  variables: {    logDirectory: ${basedir}/App_Data/Logs  },  extensions: [    {      assembly: NLog.Web.AspNetCore    }  ]} NLog除了以上预置的字段外还有很多其他字段比如从配置文件读取字段从应用读取身份信息提取请求数据包读取请求头截取QueryString中的指定字段。而正是是因为这些开箱即用的预置字段保证开发者随时按需调整日志输出的字段、格式和目标。 总结 通过以上介绍相信你发现了NLog日志组件的强大之处允许开发者在仅修改配置文件的方式来丰富日志输出字段、格式可以有效地帮助开发者记录和分析应用程序的运行情况。 本文由 mdnice 多平台发布
http://www.w-s-a.com/news/507890/

相关文章:

  • 搬瓦工的主机可以用来做网站吗分类信息网站开发需求方案
  • 上海高端网站开发站霸网络国际网站建设的目的
  • 程序员招聘求职的网站做网站加入广告联盟
  • 网站建设的技术方案模板易做文学网站的logo
  • 建设国家标准官方网站响应式网站切图
  • 网站链接数怎么做wordpress安装网址
  • 沈阳建网站 哪家好如何做旅游网站推销
  • 继续网站建设南通网站建设方法
  • 淮南公司网站建设如果做京东优惠卷的网站
  • 二手房网站平台怎么做项目工程监理公司网站建设方案
  • 秦皇岛做网站公司小说推广平台有哪些
  • php网站做分享到朋友圈天元建设集团有限公司信用代码
  • 邱县做网站在线免费图片编辑器
  • 网站备份网站做网站如何把支付宝微信吧
  • 做网站的怎么获取客户信息晋城建设局网站
  • 新开传奇网站发布网单职业wordpress建站网页无法运作
  • 海南省住房和城乡建设厅官方网站网站开发有哪些语言
  • 网站开发排期表免费网站建设策划
  • 飞沐网站设计江苏建设人才网证书查询
  • 网站优化的意义怎么帮商家推广赚钱
  • 安顺公司做网站福州建设发展集团有限公司网站
  • 普陀企业网站建设做散客机票的网站如何推广
  • 河北网站建设与制作建设宁波市分行的互联网网站
  • python做网站是不是特别慢百度推广基木鱼
  • 卖网站链接东营住房和城乡建设信息网
  • 网站后台如何上传ico图标单位建设网站需要的材料
  • 如何建淘客网站郑州做网站最好的公司
  • 连锁酒店网站方案o2o网站建设方案
  • 功能型网站响应式网站原理
  • 聊城建设网站骨干校 建设网站