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

道农网站建设怎么创造一个网站

道农网站建设,怎么创造一个网站,怎么做网站移动端,用虚拟机做服务器搭建网站log4j2 无日志记录使用Log4j 1.x并希望避免在某些情况下可能会造成额外的性能影响#xff08;即使实际上未记录该消息#xff09;时#xff0c;通常使用日志记录防护 。 Java的简单日志记录外观 #xff08; SLF4J #xff09;带给Java日志记录的最吸引人的功能之一是能够… log4j2 无日志记录 使用Log4j 1.x并希望避免在某些情况下可能会造成额外的性能影响即使实际上未记录该消息时通常使用日志记录防护 。 Java的简单日志记录外观 SLF4J 带给Java日志记录的最吸引人的功能之一是能够减少需要进行这些日志级别检查的情况的数量 。 在本文中我将探讨如何使用Log4j 2.x的日志记录API更改来实现类似的好处。 下一个代码清单演示了记录长时间运行的操作。 第一个示例在名称为“ slow”的实例上隐式调用toString()方法。 第二个日志记录示例调用了一个长时间运行的方法。 传统无人值守的测井 // Will implicitly invoke slows toString() method logger.debug(NORMAL: slow); // Will explicitly invoke the long-running method expensiveOperation() logger.debug(expensiveOperation()); 在前面的示例中即使实际上未执行任何日志记录这两个日志记录操作也将花费很长时间。 先前代码清单中的日志记录语句仅在日志记录级别为DEBUG或不太明确的日志级别例如TRACE时才实际记录但是即使没有任何记录它们的昂贵操作也将运行。 在Log4j 1.x中有两种方法可以解决此问题。 一种方法通常是最好的方法是尝试重新编写log语句以便不涉及长时间运行的操作 。 如果不切实际例如当需要与长时间运行的操作关联的上下文以使日志消息有用时则可以使用日志保护。 接下来演示在Log4j 1.x中有效的这种方法。 传统的受保护的日志记录 if (logger.isDebugEnabled()) {logger.debug(GUARDED: slow);logger.debug(expensiveOperation()); } 如上一代码清单所示日志防护措施可以有效地防止调用长时间运行的操作即使无论如何也不会记录任何消息。 但是使用日志保护确实会带来一些缺点。 也许最主要的缺点是引入了额外的有些人会说是code肿的代码。 另一个潜在的缺点很少见但更为严重由于条件块和关联块引入了额外的作用域因此更容易在条件块中引入错误代码甚至有可能在依赖于日志记录级别的情况下带来副作用代码块。 最常见的情况之一是日志调用实际上不会记录任何内容但会显着影响性能这是当将对象传递给logger调用或与传递给该字符串的字符串连接时显式或隐式调用对象的toString方法。记录器调用。 在上面的两个代码清单中通过将字符串文字“ GUARDED”与名为“ slow”的变量的隐式调用toString()方法进行连接将字符串传递给logger调用证明了这种情况。 SLF4J 普及了参数化日志记录调用的概念Log4j 2在其日志记录API中提供了类似的支持 。 下面的代码演示了如何使用它。 参数化记录 logger.debug(PARAMETERIZED: {}, slow); logger.debug({}, expensiveOperation()); 当上面的参数化日志记录示例以比DEBUG更特定的日志级别执行时由于参数化日志记录将不会尝试在“ slow”变量上使用隐式toString() 。 但是参数化日志记录无法帮助其他日志记录情况因为尽管进行了参数化日志记录但仍将调用方法expensiveOperation() 。 还要注意尽管参数化日志记录在隐式toString()调用的情况下有所帮助 但在显式toString()调用中却无济于事 。 即使日志记录级别比DEBUG更具体在logger语句中对slow.toString()的调用仍会导致性能slow.toString() 。 Log4j 2.4引入了一种基于Lambda的机制 该机制可用于延迟对传递给logger调用的方法的调用这样如果该语句的记录级别低于当前日志级别则根本不需要执行它们。 。 这表现在下一代码列表其中toString()方法被明确地通过λ表达式称为“慢”变量的对象上并且expensiveOperation方法是通过调用方法的参考 。 Lambda表达式记录 logger.debug(LAMBDA: , () - slow.toString()); logger.debug({}, this::expensiveOperation); 当以上代码的日志级别设置为比DEBUG更具体的级别时由于基于lambda表达式的延迟加载因此不会调用“慢速”对象的toString()方法和expensiveOperation方法。 换句话说类似于该示例与警卫一起使用的方式使用lambda表达式可以防止不必要地执行可能长时间运行的方法除非它们的结果要真正记录下来。 此lambda表达式支持已在2.4版本中添加到Log4j并且当然需要Java 8 。 摘要 Log4j 22.4提供了多种方法来避免在未实际记录消息时对日志语句的性能造成影响。 可以重写日志语句以便根本不记录昂贵的方法包括昂贵的toString()调用。 日志保护可以用来确保仅在实际记录消息时才执行log语句的长时间运行的方法调用。 除非确实记录了消息否则Log4j 2的参数化格式化记录器API可用于消除对隐式toString()方法的调用。 Log4j 2.4的lambda表达式记录器API可用于消除对已记录消息所需的任何操作隐式或显式的调用除非已真正记录了该消息。 翻译自: https://www.javacodegeeks.com/2015/10/better-performing-non-logging-logger-calls-in-log4j2.htmllog4j2 无日志记录
http://www.pierceye.com/news/971061/

相关文章:

  • 做最好最全的命理网站郴州网络营销
  • wap网站技术怎么查询网站的建站时间
  • 深圳网站开发专业团队2o18江苏建设网站施工员模试卷
  • 网站购物建设实训心得体会中山皇冠建设开发有限公司网站
  • 做360pc网站排名首页学校网站建设工作计划
  • 网站设计与制作的基本步骤移动互联网论文
  • 建设部网站2015年第158号中国建筑材料网官网
  • 大理网站建设沛宣郑州模板建站代理
  • 新浪博客怎么上传wordpress佛山推广seo排名
  • 北京建设网站有哪些公司网络营销方法有哪几种
  • 在中国备案的网站服务器利用小说网站做本站优化
  • 网站风格的表现形式重庆观音桥房价
  • 哪些公司的网站做的很好手机网页素材
  • 天津地铁建设网站百度广告太多
  • 保定php网站制作wordpress的seo收件箱
  • 网站建设公司-跨界鱼科技优外国网站设计风格
  • 网站营销平台注册微信公众号流程
  • 西安专业网站建设服务公司商标查询网入口
  • 营销型网站设计房地产wordpress多媒体路径
  • 门户网站建设解决方案wordpress图片广告
  • 哈尔滨h5模板建站设计一个软件需要多少钱
  • 青岛网站建设方案服务惠民卡看电影怎么用
  • 兰州新站点seo加盟网站建设工作有底薪吗
  • 哈尔滨建设网站官网清远头条新闻
  • 泉州网站设计平台wordpress cenos
  • 网站内容批量替换站长之家网站素材
  • asp.net 获取网站域名展览馆展示设计
  • 网站网页设计公司家庭做网站
  • php网站开发实战的书网站开发排行榜
  • 摄影师都在哪些网站发布作品云虚拟主机搭建网站