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

电商网站创办过程网站开发能用到的ps知识

电商网站创办过程,网站开发能用到的ps知识,镇江市建设工程招投标网站,齐齐哈尔网站建设简介 NLog是一个基于.NET平台编写的日志记录类库#xff0c;它可以在应用程序中添加跟踪调试代码#xff0c;以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点#xff0c;支持在任何一种.NET语言中输出带有上下文的调试诊断信息…简介 NLog是一个基于.NET平台编写的日志记录类库它可以在应用程序中添加跟踪调试代码以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点支持在任何一种.NET语言中输出带有上下文的调试诊断信息并能够将这些信息发送到一个或多个输出目标target中如文件、数据库、控制台等。 NLog的API非常类似于log4net但配置方式更加简单使用路由表routing table进行配置使得配置文件易于阅读和维护。此外NLog还支持结构化日志记录可以方便地记录复杂的数据类型如对象、集合等。它还提供了可扩展性允许用户编写自定义目标或传递自定义值以满足特定的日志记录需求。 NLog支持多种平台包括.NET Framework、.NET Core、Xamarin、ASP.NET等可以在各种应用程序中使用。同时NLog还遵从BSD license允许商业应用且完全开放源代码因此得到了广泛的应用和支持。 NLog 支持结构化日志 记录和传统日志记录。 NLog的重点是高性能、易于使用、易于扩展和灵活配置。 NLog配置文件说明 文件位置 启动时NLog 在各种文件中搜索其配置如下所述。它加载找到的第一个 nlog 配置。当找到第一个 nlog 配置时搜索结束。如果未找到配置NLog 将不会执行任何日志记录。 对于独立的 *.exe 应用程序按如下方式搜索文件 标准应用程序配置文件 app.config例如 applicationname.exe.config应用程序目录中的 applicationname.exe.nlog应用程序目录中的 NLog.configNLog.dll.nlog 位于 NLog.dll 所在目录中仅当 NLog 未安装在 GAC 中时 对于 ASP.NET 应用程序按如下方式搜索文件 标准 Web 应用程序配置文件 web.configweb.nlog 与 web.config 位于同一目录应用程序目录中的 NLog.configNLog.dll.nlog 位于 NLog.dll 所在目录中仅当 NLog 未安装在 GAC 中时 另请参阅显式 NLog 配置加载包括有关assetsXamarin Android 的 -folder 的详细信息 元素说明 您可以使用以下元素作为 的子元素nlog。targets和rules在任何配置中都是必需的 其他是可选的并且在高级场景中很有用。 targets– 定义日志目标/输出rules– 定义日志路由规则extensions– 从 *.dll 文件加载 NLog 扩展include– 包括外部配置文件variable– 设置配置变量的值 Targets定义日志目标/输出 targetstarget namefxsi:typeFilefileName${basedir}/logs/${shortdate}.loglayout${longdate} ${uppercase:${level}} ${message} maxArchiveFiles5archiveAboveSize10240archiveEveryDay/ /targets0Nlog允许用户配置单个文件大小, 放置在内容过长效率过慢,配置了大小之后, Nlog会自动创建一个新的文件副本,插入新的日志输出。 maxArchiveFiles允许生成的副本文件最大数量 archiveAboveSize允许单个文件得最大容量 archiveEvery按天生成 name输出目标的名称用于rules中路由规则writeTo指定 fileName包含完整的生成文件的路径和文件名 xsi:type输出类型如下 Chainsaw ColoredConsole Console Database Debug Debugger EventLog File LogReceiverService Mail Memory MethodCall Network NLogViewer Null OutputDebugString PerfCounter Trace WebServicelayout用来规定输出内容格式语法“${属性}”可以把上下文信息插入到日志中。 系统变量参考Config | NLog Rules– 定义日志路由规则 路由顺序会对日志打印产生影响。路由匹配逻辑为顺序匹配。 日志可以分不同级别进行输出日志规则rules里面可以控制输出的日志级别。不同级别的日志代表日志的重要程度比如一些debug级别的日志在生产环境就会被控制不输出以减少日志文件的大小。 ruleslogger name* minlevelDebug writeTofile / /rulesname记录者的名字。ame– 匹配记录器对象的记录器名称 - 可能包含通配符* 和 ?minlevel– 记录的最低级别与指定级别和上面的级别匹配maxlevel– 记录的最大级别与指定级别和下面的级别匹配level– 单级记录levels- 以逗号分隔的要记录的级别列表writeTo– 以逗号分隔的要写入的目标列表final– 最终规则匹配后不处理任何规则enabled- 设置为false禁用规则而不删除它ruleName- 允许使用 Configuration.FindRuleByName和进行规则查找的规则标识符Configuration.RemoveRuleByName。NLog 4.6.4 中引入FinalMinLevel - 记录器匹配将被限制为以下规则的指定最低级别。NLog 5.0中引入 日志级别有如下自上而下等级递增。 Trace - 最常见的记录信息一般用于普通输出Debug - 同样是记录信息不过出现的频率要比Trace少一些一般用来调试程序Info - 信息类型的消息Warn - 警告信息一般用于比较重要的场合Error - 错误信息Fatal - 致命异常信息。一般来讲发生致命异常之后程序将无法继续执行。 日志过滤器可以在路由当中, 为每个路由配置自定义得日志过滤器fliter如下所示 ruleslogger name* writeTofilefilterswhen conditionlength(${message}) 100 actionIgnore /when conditionequals(${logger},MyApps.SomeClass) actionIgnore /when condition(level LogLevel.Debug and contains(${message},PleaseDontLogThis)) actionIgnore /when conditionnot starts-with(${message},PleaseLogThis) actionIgnore //filters/logger /rulesAsp .Net Core 集成 NLog 安装 NLog.Web.AspNetCore 包 在您的项目中通过 NuGet 包管理器安装 NLog.Web.AspNetCore 包。在 Visual Studio 中您可以右键点击项目 - 选择 Manage NuGet Packages - 搜索 NLog.Web.AspNetCore - 点击 Install。 或者通过命令行安装 dotnet add package NLog.Web.AspNetCore配置 NLog 创建一个 nlog.config 文件在项目的根目录下并添加您的 NLog 配置。例如 ?xml version1.0 encodingutf-8 ? nlog xmlnshttp://www.nlog-project.org/schemas/NLog.xsd xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance autoReloadtrue throwExceptionsfalse internalLogLevelInfo internalLogFileinternal-nlog.txt !-- 定义日志输出目标 -- targets target xsi:typeFile namefile fileName${basedir}/logs/nlog.txt layout${longdate} ${level:uppercasetrue} ${message} ${exception} / /targets !-- 定义日志规则 -- rules logger name* minlevelDebug writeTofile / /rules /nlog在 Program.cs 中配置 NLog // 添加 NLog builder.Logging.ClearProviders(); //builder.Logging.SetMinimumLevel(LogLevel.Debug); //NLogBuilder.ConfigureNLog(nlog.config); builder.Host.UseNLog(); 使用 NLog 现在您可以在控制器、服务等中注入 ILogger 并使用它记录日志。NLog 将处理这些日志并记录到配置的目标中。 using Microsoft.AspNetCore.Mvc;namespace NLogTest.Controllers {[ApiController][Route([controller])]public class WeatherForecastController : ControllerBase{private readonly ILoggerWeatherForecastController _logger;public WeatherForecastController(ILoggerWeatherForecastController logger){_logger logger;}[HttpGet(Name GetWeatherForecast)]public IEnumerableWeatherForecast Get(){try{ int a 1 / int.Parse(0);return null;}catch (Exception ex){_logger.LogDebug(ex, ex.Message);_logger.LogTrace(ex, ex.Message);_logger.LogInformation(ex, ex.Message);_logger.LogWarning(ex, ex.Message);_logger.LogError(ex, ex.Message);return Enumerable.EmptyWeatherForecast();}}} } NLog 自定义全局变量 app.Use(async (context, next) {GlobalDiagnosticsContext.Set(TenantId, 1);GlobalDiagnosticsContext.Set(CreateUserId, 111);await next();});// 使用 ${gdc:TenantId}将日志消息写入MySQL数据库 Database target · NLog/NLog Wiki · GitHub 安装Nuget包 dotnet add package NLog.Database dotnet add package MySql.Data数据库准备(MySQL) create database mcode_log; use mcode_log; create table if not exists erp_log (Id bigint auto_increment comment 主键primary key,TenantId bigint null comment 租户Id,ApplicationName varchar(100) null comment 程序名称,HostName varchar(100) null comment 主机,Ip varchar(100) null comment Ip地址,Message text null comment 信息,Level varchar(50) null comment 级别,ExceptionInfo text null comment 异常信息,CallInfo text null comment 调用信息,RequestMethod varchar(20) null comment 请求方法,RequestUrl varchar(512) null comment 请求地址,RequestBody text null comment 请求主体,CreateTime datetime null comment 创建时间,CreateUserId bigint null comment 创建用户,CreateUserName varchar(50) null comment 创建用户名称 );配置NLog ?xml version1.0 encodingutf-8? nlog xmlnshttp://www.nlog-project.org/schemas/NLog.xsdautoReloadtruethrowExceptionsfalse throwConfigExceptionstrueinternalLogLevelwarnxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance!--生产环境 throwExceptions 建议为false --extensionsadd assemblyNLog.Web.AspNetCore/add assemblyNLog.Database//extensions!--internalLogFilelogfiles--targets asynctrue!--屏幕打印消息--target nameconsole xsi:typeColoredConsolelayout${newline}${newline} 【当前时间】: [${date:formatyyyy-MM-dd HH\:mm\:ss}] ${newline} 【 级 别 】[${level}] ${newline} 【 调 用 】[${callsite}] [${callsite-linenumber}] [${callsite-filename}] [${stacktrace}] ${newline} 【 消 息 】[${message}] ${newline} 【 异 常 】[${exception:formatToString}] [${threadname}] [${threadid}] /!--VS输出窗口--target namedebugger xsi:typeDebuggerlayout${newline}${newline} 【当前时间】: [${date:formatyyyy-MM-dd HH\:mm\:ss}] ${newline} 【 级 别 】[${level}] ${newline} 【 调 用 】[${callsite}] [${callsite-linenumber}] [${callsite-filename}] [${stacktrace}] ${newline} 【 消 息 】[${message}] ${newline} 【 异 常 】[${exception:formatToString}] [${threadname}] [${threadid}] /!--保存至文件--target nameinfo xsi:typeFile maxArchiveFiles30fileName${basedir}/Logs/Info/${shortdate}.txtlayout${newline}${newline} 【当前时间】: [${date:formatyyyy-MM-dd HH\:mm\:ss}] ${newline} 【 级 别 】[${level}] ${newline} 【 调 用 】[${callsite}] [${callsite-linenumber}] [${callsite-filename}] [${stacktrace}] ${newline} 【 消 息 】[${message}] ${newline} 【 异 常 】[${exception:formatToString}] [${threadname}] [${threadid}] /!--保存至文件--target nameerror xsi:typeFile maxArchiveFiles30fileName${basedir}/Logs/Error/${shortdate}.txtlayout${newline}${newline} 【当前时间】: [${date:formatyyyy-MM-dd HH\:mm\:ss}] ${newline} 【 级 别 】[${level}] ${newline} 【 调 用 】[${callsite}] [${callsite-linenumber}] [${callsite-filename}] [${stacktrace}] ${newline} 【 消 息 】[${message}] ${newline} 【 异 常 】[${exception:formatToString}] [${threadname}] [${threadid}] /!--写入数据库--target xsi:typeNull nameblackhole/target namedatabase xsi:typeDatabasedbProviderMySql.Data.MySqlClient.MySqlConnection, MySql.DataconnectionStringserver110.41.14.13;Databasemcode_log;user idroot;password123456;SslModenone!--target namedatabase xsi:typeDatabasedbProviderMySqlConnector.MySqlConnection, MySqlConnectorconnectionStringserver127.0.0.1;Databasemcode_log;user idroot;password123456;SslModenone--commandTextinsert into erp_log (TenantId, ApplicationName, HostName, Ip, Message, Level, ExceptionInfo, CallInfo,RequestMethod, RequestUrl, RequestBody, CreateTime, CreateUserId, CreateUserName)values (TenantId,ApplicationName,HostName,Ip,Message,Level,ExceptionInfo,CallInfo,RequestMethod,RequestUrl,RequestBody,CreateTime,CreateUserId,CreateUserName);/commandText!--注意对于非字符串要指定dbType--parameter nameTenantId layout${gdc:TenantId} dbTypeDbType.Int64 /parameter nameApplicationName layout${gdc:ApplicationName} /parameter nameHostName layout${hostname} /parameter nameIp layout${gdc:Ip} /parameter nameMessage layout${message} /parameter nameLevel layout${level} /parameter nameExceptionInfo layout[${exception:formatToString}] [${threadname}] [${threadid}] /parameter nameCallInfo layout[${callsite}] [${callsite-linenumber}] [${callsite-filename}] [${stacktrace}] /parameter nameRequestMethod layout${gdc:RequestMethod} /parameter nameRequestUrl layout${gdc:RequestUrl} /parameter nameRequestBody layout${gdc:RequestBody} /parameter nameCreateTime layout${date} dbTypeDbType.DateTime /parameter nameCreateUserId layout${gdc:CreateUserId} dbTypeDbType.Int64 /parameter nameCreateUserName layout${gdc:CreateUserName} //target/targets!--规则--ruleslogger name* minlevelWarn writeToconsole /logger nameNLogTest.* minlevelDebug writeTodebugger /logger nameNLogTest.* minlevelInfo maxlevelInfo writeToinfo /logger name* minlevelWarn writeToerror /logger nameNLogTest.* minlevelWarn writeTodatabase //rules /nlog 其它数据库 MySql and .NET Core Install package: NuGet Gallery | MySql.Data 8.3.0 dbProviderMySql.Data.MySqlClient.MySqlConnection, MySql.Dataor if using packages: NuGet Gallery | MySqlConnector 2.3.5 and NuGet Gallery | MySqlConnector.Logging.NLog 2.0.0 dbProviderMySqlConnector.MySqlConnection, MySqlConnectorSystem.Data.SQLite and .NET Core Install package: NuGet Gallery | System.Data.SQLite 1.0.118 dbProviderSystem.Data.SQLite.SQLiteConnection, System.Data.SQLiteMicrosoft.Data.SqlClient and .NET Core Install package: NuGet Gallery | Microsoft.Data.SqlClient 5.1.5 dbProviderMicrosoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClientMicrosoft.Data.Sqlite and .NET Core Install package: NuGet Gallery | Microsoft.Data.Sqlite 8.0.1 dbProviderMicrosoft.Data.Sqlite.SqliteConnection, Microsoft.Data.SqliteNpgsql and .NET core Install package: NuGet Gallery | Npgsql 8.0.1 dbProviderNpgsql.NpgsqlConnection, NpgsqlOracle.ManagedDataAccess and .NET dbProviderOracle.ManagedDataAccess.Client.OracleConnection, Oracle.ManagedDataAccessMono.Data.Sqlite and .NET dbProviderMono.Data.Sqlite.SqliteConnection, Mono.Data.SqliteINI 复制 全屏 记录故障排除 有时我们的应用程序不会向日志文件写入任何内容即使我们应该正确配置了日志记录。日志未写入的原因可能有很多。最常见的问题是权限问题通常在 ASP.NET 进程中其中aspnet_wp.exe或w3wp.exe进程可能没有对我们要存储日志的目录的写访问权限。 NLog 旨在吞掉日志记录可能导致的运行时异常。以下设置可以更改此行为和/或重定向这些消息。 nlog throwExceptionstrue /-throwExceptions在配置文件中添加该属性会导致 NLog 停止屏蔽异常并将其传递给调用应用程序。该属性在部署时非常有用可以快速定位任何问题。至关重要的是一旦应用程序正确配置throwExceptions为false运行就应立即进行配置这样意外的日志记录问题就不会导致应用程序挂起或崩溃。nlog throwConfigExceptionstrue / - 类似于throwExceptions但仅与配置异常隔离。与此不同的是throwExceptions启用它并不危险建议在生产环境中启用因为在生产环境中日志记录配置的初始设置成功至关重要。NLog 4.3 中引入。默认null表示未配置而是使用 的值throwExceptionsnlog internalLogLevelTrace|Debug|Info|Warn|Error|Fatal /– 确定内部日志级别。级别越高内部日志输出越不详细。当需要诊断日志记录问题时输出通常非常有帮助。有关设置输出到文件或控制台的选项请参阅内部日志记录。
http://www.zqtcl.cn/news/384867/

相关文章:

  • 洛阳网站建设优惠公司网站查询ip地址
  • 学校网站模版电影网站要怎样做才有出路
  • 无锡网站建设 微信企业网站建设与管理期末考试
  • 海南海口网站开发公司怎么建立微网站?
  • 网站建设 鄂icp备app 微网站
  • 西安做网站seo网站站内优化怎么做
  • 建设网站方案公司wordpress 视差主题
  • 网站 建设 语言wordpress同步
  • 三水 网站建设建设部网站网上大厅
  • 深圳高端企业官方网站建设最好的网站设计开发公司
  • 主流大型网站开发语言调查怀柔富阳网站建设
  • 公司网站建设服务类别最便宜云主机永久免费
  • 心悦dnf免做卡网站竞价恶意点击犯法吗
  • 企业网站的类型包括无锡专业网站建设
  • 手机版刷赞网站建设软文代写文案
  • 网站内容与目录结构色一把做最好的网站
  • 优化网站方法企业做网站属于广告宣传费吗
  • 站长之家alexa排名网站架构 seo
  • 四川智能网站建设制作建设网站代理
  • 对网站建设好学吗智慧企业解决方案
  • 网站建站平台eazyshoph5制作微信小程序
  • 扬中网站建设 优帮云望野古诗带拼音
  • 网站和discuz同步登录建设产品网站课程
  • 常州做网站多少钱图片链接在线生成器
  • 服务器网站打不开可以做哪些网站
  • 建设银行网站信息补充网站如何备份
  • 网站建设 杭州市萧山区网页此站点不安全
  • 微网站免费开发平台钟表珠宝商城网站建设
  • 帮建网站的人wordpress广告栏
  • 怎么学建网站教做甜品网站