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

公司网站备案上海松江区网站建设公司

公司网站备案,上海松江区网站建设公司,wordpress阿里图标库,购物系统流程图目录 一、导入NuGet 包 二、添加配置文件 log4net.config 三、创建MySQL表格 四、Program全局配置 五、帮助类编写 六、效果展示 小编没有使用依赖注入的方式。 一、导入NuGet 包 ---- log4net 基础包 ---- Microsoft.Extensions.Logging.Log4Net…目录 一、导入NuGet 包 二、添加配置文件  log4net.config  三、创建MySQL表格 四、Program全局配置 五、帮助类编写 六、效果展示 小编没有使用依赖注入的方式。 一、导入NuGet 包 ----  log4net        基础包            ----  Microsoft.Extensions.Logging.Log4Net.AspNetCore          扩展包         ----  MySql.Data        数据库包 二、添加配置文件  log4net.config  需改数据库的字符串 ?xml version1.0 encodingutf-8? configurationconfigSections!-- 读取log4not节点 --section namelog4net typelog4net.Config.Log4NetConfigurationSectionHandler, log4net //configSectionslog4net!--正常日志记录正常日志--!-- 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!--定义文件存放位置--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 行号%L日志描述创建连接失败。--conversionPattern value记录时间%date 线程ID[%thread] 日志级别%-5level %n当前类%logger 行号%L %n日志描述%message%newline %n//layout/appender!--错误日志记录错误日志--!--按日期分割日志文件 一天一个--!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。--appender nameErrorAppender typelog4net.Appender.RollingFileAppender!--定义文件存放位置--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!--定义文件存放位置--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!--每条日志末尾的文字说明--!--输出格式 模板--!-- 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【日志级别】%-2level%n【记录时间】%date%n【执行时间】[%r]毫秒%n【debug位置】%logger 属性[%property{NDC}]%n【debug描述】%message//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/configuration 三、创建MySQL表格 CREATE TABLE log4net ( log_datetime datetime DEFAULT NULL, log_thread varchar(255) DEFAULT NULL, log_level varchar(255) DEFAULT NULL, log_logger varchar(255) DEFAULT NULL, log_message varchar(4000) DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8; 四、Program全局配置 // 全局配置 log4net ILoggerRepository repository LogManager.CreateRepository(LogRepository); // 读取配置文件 XmlConfigurator.Configure(repository, new FileInfo(Log4/log4net.config)); // log错误日志配置 builder.Services.AddControllers(options {options.SuppressAsyncSuffixInActionNames false;options.Filters.Add(typeof(GlobalExceptionsFilter)); });五、帮助类编写 /// summary /// 日志帮助实现类 /// /summary public class LoggerHelperTClass {private static readonly ILog Log LogManager.GetLogger(LogRepository, typeof(TClass));public static void Debug(string msg) Log.Debug(msg);public static void Info(string msg) Log.Info(msg);public static void Warn(string msg) Log.Warn(msg);public static void Error(string msg) Log.Error(msg);public static void Fatal(string msg) Log.Fatal(msg); } /// summary /// 全局异常错误日志 /// // log错误日志配置 /// builder.Services.AddControllers(options /// { /// options.SuppressAsyncSuffixInActionNames false; /// options.Filters.Add(typeof(GlobalExceptionsFilter)); /// }); /// /summary public class GlobalExceptionsFilter : IExceptionFilter {private readonly IWebHostEnvironment _env;public GlobalExceptionsFilter(IWebHostEnvironment env){_env env;}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 进行错误日志记录LoggerHelperException.Error(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; } } 六、效果展示 /// summary /// 测试代码 /// /summary [HttpGet] public string Index() {LoggerHelperFirstController.Info(WWWWWWW);LoggerHelperStudent.Info(PPPP);throw new Exception(RRRRRRRR);return OK; } \bin\Debug\net6.0\Log 如有错误烦请批评指正
http://www.w-s-a.com/news/348204/

相关文章:

  • 福建高端网站建设个人公众号怎么制作教程
  • 企业网站有哪些举几个例子wordpress ie兼容插件
  • 高端的深圳网站页面设计福清市建设局官方网站
  • 安装网站到服务器合肥建设干部学校网站
  • 影视网站如何做销售案例网站
  • 建设网站对比方案龙岗网站开发公司
  • 网站开发标准网站建设公司兴田德润可信赖
  • 如何建设一个公众号电影网站自动seo优化
  • 个人网站能备案吗酱香拿铁采取了哪些网络营销方式
  • 网站建设及推广好做吗自己做的网站加入购物车价格
  • 涡阳在北京做网站的名人注册一个免费的网站
  • 三门峡建设环境局网站公司注册网上核名通道
  • 叶县建设局网站要看网海外域名是多少
  • 网站运行环境配置Wordpress支付时效
  • logo设计网站知乎港北网站建设
  • 北京市保障性住房建设投资中心官方网站有限责任公司的特点
  • 做网站卖互联网营销怎么做
  • 晋州市建设局网站建站网站系统
  • 专业网站优化方案广东微信网站制作报价表
  • 北京网站建设公司分形科技简述营销网站建设策略
  • 汉中网站建设有限公司vue网站开发
  • 网站备案背景幕布阳江东莞网站建设
  • 北京网站建设要多少钱html网站标签
  • 做兼职做网站的是什么公司网站怎么修改
  • 舆情监控都有哪些内容西安seo网站公司
  • 网站有域名没备案天津网络营销
  • 哈巴狗模式网站开发电子商务平台建设与运营技术
  • 摄影网站源码wordpress内涵段子
  • 实验一 电子商务网站建设与维护图片做网站
  • 网站策划书模板大全中国建设部官方网站资格证查询