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

爬虫做网站相关教程wordpress文章付费阅读设置

爬虫做网站相关教程,wordpress文章付费阅读设置,成都小程序开发公司,网页制作的公司网站目录 一、引入 NuGet 包 二、配置log4net.config 三、编写Log4net封装类 四、编写日志记录类 五、AOP -- 拦截器 -- 封装 六、案例编写 七、结果展示 一、引入 NuGet 包 log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore MySql.Data ---- MySQL…目录 一、引入 NuGet 包 二、配置log4net.config   三、编写Log4net封装类 四、编写日志记录类 五、AOP -- 拦截器 -- 封装 六、案例编写 七、结果展示 一、引入 NuGet 包 log4net  Microsoft.Extensions.Logging.Log4Net.AspNetCore    MySql.Data         ----  MySQL数据库需要 Newtonsoft.Json Autofac Autofac.Extensions.DependencyInjection Autofac.Extras.DynamicProxy 二、配置log4net.config   注当前网上有两种 log4net.config 配置文件, 一种是以log4net为根目录, 另一种以configuration 为根目录 ?xml version1.0 encodingutf-8?log4net!--正常日志记录正常日志--!-- appender 定义日志输出方式 将日志以回滚文件的形式写到MySQL数据库中。--appender nameADONetAppender typelog4net.Appender.ADONetAppender!-- 代表缓存大小,在没达到缓存大小时,暂时不会存到数据库中, --!-- 当程序关闭之后,会将未插入的信息加入到数据库中 --bufferSize value1 /!--引入《MySql.Data》包--param nameConnectionType valueMySql.Data.MySqlClient.MySqlConnection, MySql.Data /!--配置连接数据库的字符串--param nameConnectionString valueserverlocalhost;databaseTTTTT;uidroot;pwd123456;/!--配置MySQL的插入语句--param nameCommandText valueinsert into log4net(log_datetime,log_thread,log_level,log_logger,log_message) values(log_datetime, log_thread , log_level, log_logger, log_message) /param nameParameterparam nameParameterName valuelog_datetime /param nameDbType valueDateTime /param nameLayout typelog4net.Layout.PatternLayoutparam nameConversionPattern value%d{yyyy-MM-dd HH:mm:ss} //param/paramparam nameParameterparam nameParameterName valuelog_thread /param nameDbType valueString /param nameSize value255 /param nameLayout typelog4net.Layout.PatternLayoutparam nameConversionPattern value%t //param/paramparam nameParameterparam nameParameterName valuelog_level /param nameDbType valueString /param nameSize value255 /param nameLayout typelog4net.Layout.PatternLayoutparam nameConversionPattern value%p //param/paramparam nameParameterparam nameParameterName valuelog_logger /param nameDbType valueString /param nameSize value255 /param nameLayout typelog4net.Layout.PatternLayoutparam nameConversionPattern value%c //param/paramparam nameParameterparam nameParameterName valuelog_message /param nameDbType valueString /param nameSize value4000 /param nameLayout typelog4net.Layout.PatternLayoutparam nameConversionPattern value%m //param/param/appender!--正常日志记录正常日志--!--按日期分割日志文件 一天一个--!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。--appender nameRollingFile typelog4net.Appender.RollingFileAppender!-- 定义中文编码类型 UTF-8--param nameEncoding valueutf-8 /!--定义文件存放位置--file valueLog\log_/!--是否追加到文件--appendToFile valuetrue/!--记录日志写入文件时不锁定文本文件防止多线程时不能写Log,官方说线程非安全--lockingModel typelog4net.Appender.FileAppenderMinimalLock/!--最多产生的日志文件数超过则只保留最新的n个。设定值value1为不限文件数--maxSizeRollBackups value-1/!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--rollingStyle valueComposite/datePattern valueyyyy\\yyyyMM\\yyyyMMdd.txt/!--是否只写到一个文件中--staticLogFileName valuefalse/!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志--maximumFileSize value100MB/!--计数类型为123…--!--param nameCountDirection value1/--layout typelog4net.Layout.PatternLayout!--输出格式-样例记录时间2022-08-24 17:59:31,172 线程ID[4] 日志级别INFO 当前类Log4NetDemo.MainClass 日志描述创建连接。--conversionPattern value记录时间%date 线程ID[%thread] 日志级别%-5level 当前类%logger %newline日志描述%message %newline %newline//layout/appender!--错误日志记录错误日志--!--按日期分割日志文件 一天一个--!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。--appender nameErrorAppender typelog4net.Appender.RollingFileAppender!-- 定义中文编码类型 UTF-8--param nameEncoding valueutf-8 /!--定义文件存放位置--file valueLog\error_/!--是否追加到文件--appendToFile valuetrue/!--记录日志写入文件时不锁定文本文件防止多线程时不能写Log,官方说线程非安全--lockingModel typelog4net.Appender.FileAppenderMinimalLock/!--最多产生的日志文件数超过则只保留最新的n个。设定值value1为不限文件数--maxSizeRollBackups value-1/!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--rollingStyle valueComposite/datePattern valueyyyy\\yyyyMM\\yyyyMMdd.txt/!--是否只写到一个文件中--staticLogFileName valuefalse/!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志--maximumFileSize value100MB/!-- layout 控制Appender的输出格式也可以是xml 一个Appender只能是一个layout--layout typelog4net.Layout.PatternLayout!--每条日志末尾的文字说明--!--输出格式 模板--!-- param nameConversionPattern value记录时间%date 线程ID:[%thread] 日志级别%-5level 记录类%logger 操作者ID%property{Operator} 操作类型%property{Action}%n 当前机器名:%property%n当前机器名及登录用户%username %n 记录位置%location%n 消息描述%property{Message}%n 异常%exception%n 消息%message%newline%n%n /--!--样例2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--!--conversionPattern value%newline %n记录时间%date %n线程ID:[%thread] %n日志级别 %-5level %n错误描述%message%newline %n/--conversionPattern value%n%n【日志级别】%-5level%n【记录时间】%date%n【执行时间】[%r]毫秒%n【错误位置】%logger 属性[%property{NDC}]%n【错误描述】%message%n【错误详情】%newline//layoutfilter typelog4net.Filter.LevelRangeFilter,log4netlevelMin valueERROR /levelMax valueFATAL //filter/appender!--DEBUG记录DEBUG日志--!--按日期分割日志文件 一天一个--!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。--appender nameDebugAppender typelog4net.Appender.RollingFileAppender!-- 定义中文编码类型 UTF-8--param nameEncoding valueutf-8 /!--定义文件存放位置--file valueLog\debug_/!--是否追加到文件--appendToFile valuetrue/!--记录日志写入文件时不锁定文本文件防止多线程时不能写Log,官方说线程非安全--lockingModel typelog4net.Appender.FileAppenderMinimalLock/!--最多产生的日志文件数超过则只保留最新的n个。设定值value1为不限文件数--maxSizeRollBackups value-1/!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--rollingStyle valueComposite/datePattern valueyyyy\\yyyyMM\\yyyyMMdd.txt/!--是否只写到一个文件中--staticLogFileName valuefalse/!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志--maximumFileSize value100MB/!-- layout 控制Appender的输出格式也可以是xml 一个Appender只能是一个layout--layout typelog4net.Layout.PatternLayout!--输出格式-样例记录时间2022-08-24 17:59:31,172 线程ID[4] 日志级别INFO 当前类Log4NetDemo.MainClass 日志描述创建连接。--conversionPattern value记录时间%date 线程ID[%thread] 日志级别%-5level 当前类%logger %newline日志描述%message %newline %newline//layoutfilter typelog4net.Filter.LevelRangeFilter,log4netlevelMin valueDEBUG /levelMax valueWARN //filter/appenderroot!--日志等级OFF FATAL ERROR WARN INFO DEBUG ALL--level valueALL /appender-ref refADONetAppender /appender-ref refRollingFile /appender-ref refErrorAppender /appender-ref refDebugAppender //root/log4net 三、编写Log4net封装类 public static class CustomLog4netExt {public static void AddLog4netExt(this WebApplicationBuilder builder){// 添加 Log4net 配置文件builder.Logging.AddLog4Net(log4net.config);// log错误日志配置builder.Services.AddControllers(options {options.SuppressAsyncSuffixInActionNames false;options.Filters.Add(typeof(GlobalExceptionsFilter));});} } 四、编写日志记录类 全局报错监测类 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters;namespace Log4Test.Log4;/// summary /// 全局异常错误日志 /// /summary public class GlobalExceptionsFilter : IExceptionFilter {private readonly IWebHostEnvironment _env;private readonly ILoggerGlobalExceptionsFilter _logger;public GlobalExceptionsFilter(IWebHostEnvironment env, ILoggerGlobalExceptionsFilter logger){_env env;_logger logger;}public void OnException(ExceptionContext context){var json new JsonErrorResponse();json.Message context.Exception.Message;//错误信息if (_env.IsDevelopment()){json.DevelopmentMessage context.Exception.StackTrace;//堆栈信息}context.Result new InternalServerErrorObjectResult(json);//采用log4net 进行错误日志记录_logger.LogError(WriteLog(json.Message, context.Exception));}/// summary/// 自定义返回格式/// /summary/// param namethrowMsg/param/// param nameex/param/// returns/returnspublic string WriteLog(string throwMsg, Exception ex){return string.Format(【自定义错误】{0} \r\n 【异常类型】{1} \r\n 【异常信息】{2} \r\n 【堆栈调用】{3}, new object[] { throwMsg,ex.GetType().Name, ex.Message, ex.StackTrace });}}public class InternalServerErrorObjectResult : ObjectResult {public InternalServerErrorObjectResult(object value) : base(value){StatusCode StatusCodes.Status500InternalServerError;} } //返回错误信息 public class JsonErrorResponse {/// summary/// 生产环境的消息/// /summarypublic string Message { get; set; }/// summary/// 开发环境的消息/// /summarypublic string DevelopmentMessage { get; set; } } 日常方法监测类 using Castle.DynamicProxy; using Newtonsoft.Json;namespace LOG.Test;/// summary /// 自定义 方法拦截器 /// /summary public class CustomInterceptor : IInterceptor {private readonly ILoggerCustomInterceptor _logger;public CustomInterceptor(ILoggerCustomInterceptor logger){_logger logger;}public void Intercept(IInvocation invocation){string result $开始执行--\n方法名: {invocation.Method.Name}\n;foreach (var item in invocation.Arguments){result $入参---{JsonConvert.SerializeObject(item)}\n;}_logger.LogInformation(result);invocation.Proceed();_logger.LogInformation($结束执行--\n方法名: {invocation.Method.Name}\n $返回结果---{JsonConvert.SerializeObject(invocation.ReturnValue)}\n);} } 五、AOP -- 拦截器 -- 封装 using Autofac; using Autofac.Extensions.DependencyInjection; using Autofac.Extras.DynamicProxy;namespace LOG.Test;public static class CustomAOPExt {public static void AddAOPExt(this WebApplicationBuilder builder){builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()) // 工厂替换把Autofac整合进来.ConfigureContainerContainerBuilder(containerBuilder {// 依赖注入containerBuilder.RegisterTypeCustomInterceptor(); containerBuilder.RegisterTypeStudent().AsIStudent().EnableClassInterceptors(); // 开启类拦截器 //containerBuilder.RegisterTypeStudent().AsIStudent().EnableInterfaceInterceptors(); // 开启接口拦截器});} } 六、案例编写 // 在Program.cs 中// 添加 lg4net 扩展 builder.AddLog4netExt(); // 添加 AOP 扩展 builder.AddAOPExt(); 创建 Student 和 IStudent  测试类和接口 创建 一个 控制器 七、结果展示 如有错误烦请批评指正
http://www.hkea.cn/news/14540370/

相关文章:

  • 广安们内网站建设Lms wordpress功能
  • 中山服装网站建设东莞阳光官方网
  • 关于网站建设的职位北京怎样做企业网站
  • 台州网站公司网站建设使页面内容居中
  • wordpress给公司建站优秀设计案例网站
  • 自己能建设网站吗wordpress表单反馈
  • 帮齐家网做的网站浅谈电子商务网站的建设与管理
  • 滴滴出行的网站是哪家公司做的网站设计的国际专业流程
  • 无锡网站制作启手机开发人员选项怎么设置
  • 网站全站模板交易所网站开发实战
  • 公司没有备案了网站杭州滨江区抖音seo行情
  • 12306网站很难做吗温州产品推广网站
  • 做硅胶的网站wordpress 附件重命名
  • 宁波网站开发rswl长沙建设局网站
  • 网站设计主要做什么图片搜索图片识别
  • 北京一家专门做会所的网站怎样做网站全屏代码
  • 个人网站前置审批项高端品牌网站建设在哪济南兴田德润优惠吗
  • 彩票娱乐网站建设开发网站开发就是ssh吗
  • 做班级网站代码做外贸需要关注国外哪些网站
  • 金沙县建设局网站电信改公网ip可以做网站吗
  • 云南哪里有给做网站的织梦cms怎么做网站地图
  • 做网站 页面自适应商品价格网
  • 网站开发制作软件wordpress给公司建站
  • 北京网站建设咸宁网站去掉index.html
  • 门户网站的建设目的用ps如何做网站首页
  • 郑州 科技有限公司 网站建设优化关键词排名的工具
  • 深圳seo整站优化承接粒子特效网站
  • 网站如何做浮窗中建八局第一建设有限公司总部
  • 永久免费网站推荐app 服务器 app
  • 网站蓝色和红色搭配家装公司取名字大全集