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

做网站英文编辑有前途吗网站外链有多重要

做网站英文编辑有前途吗,网站外链有多重要,网站开发文档编写,app设计原理Nlog是什么? NLog是一个为.NET平台设计的灵活且免费的日志记录库。它适用于包括.NET Framework、.NET Core和.NET Standard在内的多种.NET环境。 Nlog有什么好处或者特点? 配置灵活:NLog允许开发者通过配置文件(通常是NLog.conf…

Nlog是什么?

NLog是一个为.NET平台设计的灵活且免费的日志记录库。它适用于包括.NET Framework、.NET Core和.NET Standard在内的多种.NET环境。

Nlog有什么好处或者特点?

  • 配置灵活:NLog允许开发者通过配置文件(通常是NLog.config)来设定日志记录的行为,如日志级别、输出目标等,而无需修改代码。配置更改可即时生效,无需重启应用。

  • 多目标记录:支持将日志信息输出到多个目的地(或称为“目标”),如控制台、文件系统、数据库、电子邮件、网络Socket等,这为日志管理和分析提供了便利。

  • 日志级别管理:定义了多个日志级别,包括Trace、Debug、Info、Warn、Error和Fatal,使得开发者可以根据情况记录不同重要性的信息,并且可以设定记录的最低和最高级别。

  • 性能优化:设计注重性能,确保在高负载环境下也能高效地记录日志。

  • 结构化日志记录:支持日志消息的结构化输出,便于日志数据的自动化处理和分析。

  • 模板变量与布局渲染器:提供了丰富的模板变量(如${date}, ${level}, ${message}等)和布局渲染器,使得日志信息的格式化更加灵活和强大。

  • 即时配置变更:可以在应用程序运行时动态改变日志配置,无需重新部署。

  • 扩展性:用户可以自定义日志目标、布局渲染器等,以满足特定需求。

  • 开源与社区支持:作为开源项目,NLog拥有活跃的社区支持,持续更新和改进,同时也鼓励用户贡献代码和插件。

快速上手

准备工作

因为接上篇文章,我的项目里已经使用了log4net,所以我们使用Nlog的话暂时先注释掉之前的log4net,如果你的项目是干净的,那就直接看下个步骤哇~~


安装依赖 NLog.Web.AspNetCore


准备NLog配置文件

新建xiaojinWebApplication\configFile\NLog.Config, 下面的配置项注释掉了数据库日志部分,大家可以自行去掉注释哦,等我的数据库搭建好以后我就把这个打开补充一下~

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"autoReload="true"throwExceptions="false"internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"><!-- optional, add some variableshttps://github.com/nlog/NLog/wiki/Configuration-file#variables--><variable name="myvar" value="myvalue"/><!--See https://github.com/nlog/nlog/wiki/Configuration-filefor information on customizing logging rules and outputs.--><targets><!--add your targets hereSee https://github.com/nlog/NLog/wiki/Targets for possible targets.See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.--><!-- <target name="AllDatabase" xsi:type="Database"dbProvider="System.Data.SqlClient.SqlConnection, System.Data.SqlClient"connectionString="Data Source=PC-202206030027;Initial Catalog=LogManager;Persist Security Info=True;User ID=sa;Password=sa123"commandText="insert into dbo.NLog (Application, Logged, Level, Message,Logger, CallSite, Exception) values (@Application, @Logged, @Level, @Message,@Logger, @Callsite, @Exception);"><parameter name="@application" layout="AspNetCoreNlog" /><parameter name="@logged" layout="${date}" /><parameter name="@level" layout="${level}" /><parameter name="@message" layout="${message}" /><parameter name="@logger" layout="${logger}" /><parameter name="@callSite" layout="${callsite:filename=true}" /><parameter name="@exception" layout="${exception:tostring}" /></target> --><target xsi:type="File" name="allfile" fileName="NLog\nlog-all-${shortdate}.log"layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /><!--同样是将文件写入日志中,写入的内容有所差别,差别在layout属性中体现。写入日志的数量有差别,差别在路由逻辑中体现--><!-- <target xsi:type="File" name="ownFile-web" fileName="NLog\nlog-my-${shortdate}.log"layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /><target xsi:type="Null" name="blackhole" /> --><!--Write events to a file with the date in the filename.<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"layout="${longdate} ${uppercase:${level}} ${message}" />--></targets><rules><logger name="*" minlevel="Trace" writeTo="AllDatabase" /><!-- add your logging rules here --><!--路由顺序会对日志打印产生影响。路由匹配逻辑为顺序匹配。--><!--All logs, including from Microsoft--><logger name="*" minlevel="Trace" writeTo="allfile" /><!--Skip Microsoft logs and so log only own logs--><!--以Microsoft打头的日志将进入此路由,由于此路由没有writeTo属性,所有会被忽略--><!--且此路由设置了final,所以当此路由被匹配到时。不会再匹配此路由下面的路由。未匹配到此路由时才会继续匹配下一个路由--><logger name="Microsoft.*" minlevel="Trace"  final="true" /><!--上方已经过滤了所有Microsoft.*的日志,所以此处的日志只会打印除Microsoft.*外的日志--><logger name="*" minlevel="Trace" writeTo="ownFile-web" /><!--Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"<logger name="*" minlevel="Debug" writeTo="f" />--></rules>
</nlog>
配置项详解
  • 标签定义了一个NLog的配置文件。
  • xmlns属性定义了NLog的命名空间,xsi:schemaLocation属性指定了NLog的XSD文件的位置。
  • autoReload属性设置为true表示配置文件发生变化时会自动重新加载。
  • throwExceptions属性设置为false表示不会抛出异常。
  • internalLogLevel属性设置为Off表示关闭内部日志记录。
  • internalLogFile属性指定了内部日志文件的路径。
  • 标签用于定义变量,这里的myvar变量被定义为myvalue。
  • 标签定义了日志的目标,例如数据库、文件等。
  • 标签定义了一个名为AllDatabase的日志目标,它是一个数据库目标,使用SQL Server数据库。
  • dbProvider属性指定了数据库提供程序。
  • connectionString属性指定了数据库连接字符串。
  • commandText属性指定了SQL命令文本。
  • 标签定义了SQL命令中的参数。
  • 标签还定义了其他日志目标,例如文件目标。
  • 标签定义了日志记录的规则。
  • 标签定义了一个日志记录器,它指定了日志记录的级别和要写入的目标。
  • name属性指定了日志记录器的名称。
  • minlevel属性指定了日志记录的最小级别。
  • writeTo属性指定了要写入的日志目标。
  • final属性设置为true表示此规则是最终规则,不会再匹配后续规则。 通过这个配置文件,可以将日志记录到数据库和文件中,并且可以自定义日志记录的级别和路由逻辑。
注册日志组件

xiaojinWebApplication\Program.cs

 // Nlog---startbuilder.Logging.AddNLog("configFile/NLog.Config");// Nlog---end

添加日志记录代码

看过我log4net文章的小伙伴,这个步骤可以省略哦~~,我们在代码里添加下面的日志调用逻辑,例如:xiaojinWebApplication\Controllers\CommonInfoController.cs

  private readonly ILogger<CommonInfoController> _logger; // 方案一private readonly ILoggerFactory _ILoggerFactory; // 方案二public CommonInfoController(ILogger<CommonInfoController> logger, ILoggerFactory iLoggerFactory){_logger = logger;_logger.LogInformation("方案一 LogInformation; this is CommonInfoController 构造函数~");_logger.LogError("方案一LogError: this is CommonInfoController 构造函数~");_logger.LogWarning("方案一LogWarning: this is CommonInfoController 构造函数~");_logger.LogDebug("方案一LogDebug:this is CommonInfoController 构造函数~");_ILoggerFactory = iLoggerFactory; // 方案二ILogger<CommonInfoController> _loger2 = _ILoggerFactory.CreateLogger<CommonInfoController>();_loger2.LogInformation("方案二LogInformation; this is CommonInfoController 构造函数~");_loger2.LogError("方案二LogError: this is CommonInfoController 构造函数~");_loger2.LogWarning("方案二LogWarning: this is CommonInfoController 构造函数~");_loger2.LogDebug("方案二LogDebug:this is CommonInfoController 构造函数~");}/// <summary>/// 测试接口01/// </summary>/// <returns></returns>[HttpGet(Name = "getCommonInfo")]public CommonInfo getCommonInfo(){_logger.LogInformation("测试接口01~");_logger.LogError("测试接口01~");_logger.LogWarning("测试接口01~");_logger.LogDebug("测试接口01~");return new CommonInfo{Date = DateOnly.FromDateTime(DateTime.Now),Text = "getCommonInfo"};}

运行代码

查看日志

打开xiaojinWebApplication\bin\Debug\net8.0\NLog\nlog-all-2024-05-07.log

大功告成

好了,等我数据库搭建好以后,下篇文章会记录如何使用数据库记录日志,大家也可以直接把代码注释打开,记得修改一下数据库的默认配置哦~

学习参考:

  • 微软MVP-Eleven

结语

  • 今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
http://www.yidumall.com/news/19673.html

相关文章:

  • 公司网站备案需要每年做吗网站推广优化排名公司
  • 去柬埔寨做网站是传销吗建站模板网站
  • 商务网站建设流程200字优化关键词排名seo软件
  • 怎么用阿里云服务器做淘客网站安卓在线视频嗅探app
  • 关于医院建设网站的请示百度搜索优化关键词排名
  • qq空间可以做网站吗服务之家网站推广
  • 付钱做编程题目的网站百度网盘登录入口官网
  • 网站管理工具电池优化大师下载
  • 房产网站建设网站排名seo培训
  • 珠宝公司网站模板网络广告有哪些
  • 上海专业做网站建设公司怎么查权重查询
  • iis7.5 部署网站链接购买
  • 四川酒店网站建设重庆可靠的关键词优化研发
  • 图片加文字制作seo快速排名软件网站
  • 菏泽 网站建设如何做好企业网站的推广
  • 网址导航网站有哪些百度高级搜索
  • 广州微网站开发化工seo顾问
  • 婚庆公司网站怎么做软文推广名词解释
  • 天猫商城网站风格汽车行业网站建设
  • 人民政府网seo博客推广
  • 网站可以做腾讯广告联盟网站关键词优化案例
  • 有做销售产品的网站有哪些重庆森林粤语
  • 什么网站可以找人做系统怎么搜索网站
  • 网站建设成立领导小组怎么制作自己公司网站
  • 台州高端网站建设百度公司总部
  • 料神wordpress建站教程安卓神级系统优化工具
  • wordpress配置数据库主机名正规seo关键词排名网络公司
  • 郑州网站建设公司哪家专业关键词制作软件
  • 网站怎么做才被收录快竞价排名采用什么计费方式
  • 南宁网站设嘉兴百度快照优化排名