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

用阿里云空降怎么建设网站3d培训班一般学费多少

用阿里云空降怎么建设网站,3d培训班一般学费多少,公司网站功能模块,视频号推广方法前端日子自己写了一个简单的日志跟踪程序#xff0c;现在目前正在做的一个项目中使用以便于跟踪程序异常和运行状况#xff0c;但是被否认了#xff01;可能是没有权威性#xff0c;于是自己总结了一下Log4net日志跟踪系统#xff0c;这里分享大家学习一下。当然写这个文章… 前端日子自己写了一个简单的日志跟踪程序现在目前正在做的一个项目中使用以便于跟踪程序异常和运行状况但是被否认了可能是没有权威性于是自己总结了一下Log4net日志跟踪系统这里分享大家学习一下。当然写这个文章的人太多了这里不是做任何攀比只是简单的分享供有需要的人。  一. Log4Net 简介 Log4net 是 Apache 下一个开放源码的项目它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。  在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题我们不能调试而且问题很难重新于是我们需要大量的日志数据来精确的跟踪程序的运行状况。  Log4net就可以帮我来解决这一个难题对于日志的输出我们不需要人为的去干涉它可以根据需要将日志输出到控制台文本文件windows 日志事件查看器中包括数据库邮件等等位置以便我们快速跟踪程序bug。   二. Log4Net 简单使用  使用Log4net必须引入log4net.dll 文件因为log4net 是开源的所以可以直接将源码添加到工程项目中去。然后生成新的dll文件。      下面使用配置一个最简单的文件输出和控制台输出。  Log4Net 的配置文件此段内容添加到App.config 或者 web.config 文件中. configSections    section namelog4net typelog4net.Config.Log4NetConfigurationSectionHandler,log4net/  /configSections  log4net    appender nameFileAppender typelog4net.Appender.FileAppender      file valueD:\a.log/file      appendToFile valuetrue/appendToFile      layout typelog4net.Layout.PatternLayout        conversionPattern value[%d]:%n%m%n/conversionPattern      /layout    /appender    appender nameConsoleAppender typelog4net.Appender.ConsoleAppender      layout typelog4net.Layout.PatternLayout        conversionPattern value[%d]:%n%m%n/conversionPattern      /layout    /appender    root      level valueINFO/level      appender-ref refFileAppender/appender-ref      appender-ref refConsoleAppender/appender-ref    /root    logger nameMyLogger      level valueERROR/level      appender-ref refFileAppender/appender-ref      appender-ref refConsoleAppender/appender-ref    /logger  / log4net  控制台程序测试例子: ILog log  LogManager.GetLogger(MyLogger);        static void Main(string[] args)        {            log4net.Config.XmlConfigurator.Configure();            Program program  new Program();            program.log.Info();            program.log.Info(1);            program.log.Info(2);  }  对于已经熟练使用log4net的同学们来说这段代码自然是小儿科。但对于新手来说这段配置理解还是有一定难度的下面逐步解说配置以及程序的使用。在实际应用中log4net可能要比更加复杂它要根据各种环境和要求来引用生成不同的日志。上面的程序代码只是将日志以文件格式和控制格式输出。如果有兴趣可以将上述代码拷贝到自己的程序中去运行一次看看结果。上述例子是不会输出任何日志信息的因为配置级别的限制。   三. Log4Net 结构 Log4net 主要分为5个核心主键: Logger,Appender,Filter,Layout,Object Render  Logger:  主要用于记录日志的分类和控制日志的级别。它可以以多种格式输出日志信息同时它也可以控制日志的输出级别。上面的简单例子我们看似做了日志输出但是没有输出任何日志结果因为我们在日志级别上做了限制。  Appender  这里我们简单称之为 附着器。意思就是说日志的输出必须依赖于它更确切的说以文本形式输出还是控制台格式输出都必须要依靠它来控制。Log4net定义了多种附着器 (1) AdoNetAppender 将日志记录到数据库中。可以采用SQL和存储过程两种方式  (2) AnsiColorTerminalAppender 在ANSI 窗口终端写下高亮度的日志事件  (3) AspNetTraceAppender 能用asp.net中Trace的方式查看记录的日志 (4) BufferingForwardingAppender 在输出到子Appenders之前先缓存日志事件  (5) ConsoleAppender 将日志输出到控制台  (6) EventLogAppender 将日志写到Windows Event Log  (7) FileAppender 将日志写到文件中  (8) MemoryAppender 将日志存到内存缓冲区  (9) NetSendAppender 将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示  (10) RemoteSyslogAppender 通过UDP网络协议将日志写到Remote syslog service (11) RemotingAppender 通过.NET Remoting将日志写到远程接收端  (12) RollingFileAppender 将日志以回滚文件的形式写到文件中  (13) SmtpAppender 将日志写到邮件中  (14) TraceAppender 将日志写到.NET trace 系统  (15) UdpAppender 将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播   Filter: Appender 是将日志以缺省值的方式输出意思就是按照默认值的方式输出。而Filter 意思就是过滤器使用Filter 可以将日志以不同格式来输出  Layout: 这个用于控制日志输出显示格式  Object Render: 用于按照用户自定义标准来输出日志   Log4net 结构图 从其他地方截图过来   Log4net 的日志对象管理器LogManagerLogManager是用于来管理所有的Logger对象的GetLogger() 可以用来查找已经存在的Logger对象如果对象不存在它会自动创建一个Logger对象并且管理它 。   四. Log4Net 日志基本 Log4net 分为如下几个级别    FATAL  毁灭级别    ERROR 错误级别    WARN 警告级别    INFO 消息级别    DEBUG 调试级别       这几种日志级别 FATAL ERROR WARN INFODEBUG       只有日志输出级别大于或等于配置的级别才能输出日志信息       比如我的日志配置级别为INFO       那么只有log.Info log.Warnlog.Error() log.Fatal才能输出日志信息Debug方式就不能输出。        Log4net中还有两种特殊的配置级别: ALL 允许所有的日志级别输出 OFF 拒绝所有的日志级别输出   五. Log4Net 配置说明  configSections    section namelog4net typelog4net.Config.Log4NetConfigurationSectionHandler,log4net/  /configSections  log4net        !--记录日志到数据库--    appender nameAdoNetAppender typelog4net.Appender.AdoNetAppender      bufferSize value100 /      connectionType valueSystem.Data.SqlClient.SqlConnection, System.Data, Version1.0.3300.0, Cultureneutral, PublicKeyTokenb77a5c561934e089 /      connectionString valuedata sourceGAS-HECHEN;initial catalogdsc141051_db;integrated securityfalse;persist security infoTrue;User IDsa;Password000000 /      commandText valueINSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (log_date, thread, log_level, logger, message, exception) /      parameter        parameterName valuelog_date /        dbType valueDateTime /        layout typelog4net.Layout.RawTimeStampLayout /      /parameter      parameter        parameterName valuethread /        dbType valueString /        size value255 /        layout typelog4net.Layout.PatternLayout          conversionPattern value%thread /        /layout      /parameter      parameter        parameterName valuelog_level /        dbType valueString /        size value50 /        layout typelog4net.Layout.PatternLayout          conversionPattern value%level /        /layout      /parameter      parameter        parameterName valuelogger /        dbType valueString /        size value255 /        layout typelog4net.Layout.PatternLayout          conversionPattern value%logger /        /layout      /parameter      parameter        parameterName valuemessage /        dbType valueString /        size value4000 /        layout typelog4net.Layout.PatternLayout          conversionPattern value%message /        /layout      /parameter      parameter        parameterName valueexception /        dbType valueString /        size value2000 /        layout typelog4net.Layout.ExceptionLayout /      /parameter    /appender        !--输入日志到控制台--    appender nameConsoleAppender typelog4net.Appender.ConsoleAppender      layout typelog4net.Layout.PatternLayout        conversionPattern value[时间]:%d%n[级别]:%p%n[内容]:%m%n%n/conversionPattern      /layout    /appender    appender nameFileAppender typelog4net.Appender.FileAppender      param namefile valueD:\a.log/param      param nameappendToFile valuetrue/param      layout typelog4net.Layout.PatternLayout        conversionPattern value[时间]:%d%n[级别]:%p%n[内容]:%m%n%n/conversionPattern      /layout    /appender        root      level valueINFO/level      appender-ref refFileAppender/appender-ref      appender-ref refConsoleAppender/appender-ref    /root    logger nameMyLogger      level valueINFO/level      appender-ref refFileAppender/appender-ref      appender-ref refConsoleAppender/appender-ref    /logger  /log4net 这个配置文件定义了三种不同的Appender分别是ADO.NET 记录到数据ConsoleAppender 从控制台输出 FileAppender 日志信息文件输出。 然而Log4Net 的配置附着器远不止这些这里上传一个比较全的附着器配置文件供大家参考 点击下载    根据上面的日志配置文件仍然使用如下代码测试:   这里需要注意log4net.Config.XmlConfigurator.Configure();   这个相当于初始化Log4net, 如果是在Web程序中 我们可以将这句话添加到 Global.asax 文件的Application_Start(object sender, EventArgs e) 方法中。在程序启动的时候就初始化配置信息。  上面的程序运行结果图控制台输出结果为   信息记录到指定的磁盘文件中记录的结果如下图:     这里说明两个配置:   这里的root 和 logger 配置节点root 就相当于默认的日志对象配置而logger是指定特定的日志配置。他们可以共存。 对于这两个节点下面都有 level 和 appender-ref 节点分别用于指定日志的输出级别和引用哪些附着器。每个日志对象都可以使用多个appender这里的配置同时使用文件输出和控制台输出。得到的结果就是上面两个结果图。    下面的logger对象添加了AdoNetAppender附着器当使用MyLogger日志对象的时候就会使用这三种不同的方式记录日志。   上面的程序声明了两个日志对象 log 和 log1log 是在初始化的时候存在的它得到的是logger nameMyLogger 这个日志对象而log1 是LogManager 中不存在的日志对象这里它会重新创建一个并且由LogManager 管理后面再次使用则使用这个已经存在的对象。 这里两个日志对象同时使用结果如下    现在我修改配置文件的日志文件输出级别 logger nameMyLogger      level valueWARN/level      appender-ref refFileAppender/appender-ref      appender-ref refConsoleAppender/appender-ref      appender-ref refAdoNetAppender/appender-ref/ logger  运行得到的结果如图   显然MyLogger对象日志没有输出日志信息。   六. Log4Net 参数说明  上面我们看到的配置文件中有类似%m %n 等这样的符号这些符号都是有特殊意义的。    %m[%message]       : 输出的日志消息    %n                                : 换行    %d[%datetime]   : 输出当前语句运行的时刻    %r                  : 输出程序从运行到执行到当前语句时消耗的毫秒数    %d                                当前语句所在的线程ID    %p                  : 日志的当前优先级别    %c                  当前日志对象的名称    %L                  : 输出语句所在的行号    %F                  输出语句所在的文件名          %-数字                      表示该项的最小长度如果不够则用空格填充    七. 自定义轻量级日志系统 具体参照 文章 ORM映射框架总结--日志处理  这里不再过多的说明   示例下载 转载于:https://www.cnblogs.com/qingyuan/archive/2011/05/13/2045616.html
http://wiki.neutronadmin.com/news/202427/

相关文章:

  • 小型个人网站制作网页设计制作图片页面
  • wordpress多站点备份个人博客网页制作代码
  • 网站建设季度考核评价工作沈阳大东区做网站公司
  • 厦门市建设安全管理协会网站北京好的做网站的公司
  • 张家界网站建设多少钱中山做百度网站的公司
  • 网站的不同类东莞阳光网入口
  • 扬州手机网站开发云南建网科技有限公司
  • 农产品网站建设结构盐城企业网站建设
  • 全国 做网站的企业想要推广版
  • 自网站EXCel数据导入怎么做贵州网站建设设计公司
  • 通信部门网站备案证明创新网站内容建设
  • 赤峰做网站公司wordpress手机端主题
  • 网站制作服务商百度推广 做网站
  • 网站编辑是做网页编辑吗外包网站多少钱
  • 网站建设接单技巧wordpress怎么上手
  • 换网站公司网络seo营销推广
  • 海南网站建设软件一个帮你赚钱的网站是谁做的广告
  • 东莞塘厦网站建设图片类网站建设
  • 海南旅游网站建设方式wordpress渐渐显示
  • 深圳网站建设乐云seo做新闻类网站如何盈利
  • 哪些网站是用wordpress搭建的极品教师韩剧在线观看第一集
  • 做网站需要学会些什么深圳住房和建设局网站 申请
  • 想自己做网站吗湖南住房与城乡建设部网站
  • 培训网站建设方案模板下载wordpress 自动标签
  • 北京公司网站制作哪家专业天津在哪做网站
  • 西安网站开发公司电话做网站php需要几个人
  • wordpress网站logo没显示深圳房产网站建设
  • 网页设计与网站建设专业网站优化关键词价格
  • 入群修改网站后台大型网站频道的建设需多人协同开发
  • 音乐播放网站怎么做网络规划设计师第二版