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

wordpress 后台禁止谷歌字体湖南正规关键词优化首选

wordpress 后台禁止谷歌字体,湖南正规关键词优化首选,怎么投诉做网站的公司,做网站用的字体log日志最佳实践 1、占位符的使用2、延迟计算 1、占位符的使用 在进行日志打印的时候,推荐使用占位符进行字符串打印,而不是直接使用字符串拼接。原因: 这样可以避免不必要的字符串拼接。使用占位符时,实际字符串拼接由日志框架…

log日志最佳实践

  • 1、占位符的使用
  • 2、延迟计算

1、占位符的使用

在进行日志打印的时候,推荐使用占位符进行字符串打印,而不是直接使用字符串拼接。原因:

  • 这样可以避免不必要的字符串拼接。使用占位符时,实际字符串拼接由日志框架在确定真正需要输出日之后才执行。例如,如果日志输出的是debug(),但是配置的是info级别,则不会执行字符串拼接
  • 减少临时对象创建。字符串拼接会产生多个临时String对象,而占位符方式通常由日志框架优化为更高效的内存处理方式
  • 更清晰的日志模版。日志输出模版和变量分离

接下来代码显示。定义实体类:

@Setter
@Getter
public class User {public Integer age;private String name;public boolean gender;@Overridepublic String toString() {// 延迟10秒,为了查看延迟计算try {Thread.sleep(10000);} catch (InterruptedException e) {throw new RuntimeException(e);}StringBuilder sb = new StringBuilder();sb.append("{");sb.append("name:").append(name).append(",");sb.append("age:").append(age).append(",");sb.append("gender:").append(gender);sb.append("}");return sb.toString();}
}
@Slf4j
public class Test {public static void main(String[] args) {User user = new User();user.setAge(15);user.setName("Jack");user.setGender(true);// 方式一:直接字符串拼接log.trace("output1:" + JSONUtil.toString(user));// 方式二:使用占位符进行输出。相比于第一种方式,更推荐这种进行日志打印log.trace("output2:{}", JSONUtil.toString(user));}
}

2、延迟计算

延迟计算就是只有真正进行日志打印的时候才会计算打印的内容。尤其是日志打印的内容特别的大或者是计算打印的日志内容特别的耗时。

模拟JSON序列化类:

@Setter
public class JSONUtil {// 目标对象Object o;// 对目标对象简单序列化@Overridepublic String toString() {return JSON.toJSONString(o);}// 对对象简单序列化public static String toString(Object o) {return o.toString();}
}

测试延迟计算:

@Slf4j
public class Test {public static void main(String[] args) {User user = new User();user.setAge(15);user.setName("Jack");user.setGender(true);long start = System.currentTimeMillis();log.trace("output1:" + JSONUtil.toString(user));long end = System.currentTimeMillis();System.out.println("字符串拼接用时: " + (end - start) / 1000);start = System.currentTimeMillis();log.trace("output2:{}", JSONUtil.toString(user));end = System.currentTimeMillis();System.out.println("占位符加序列化用时: " + (end - start) / 1000);start = System.currentTimeMillis();log.trace("output3:{}", user);end = System.currentTimeMillis();System.out.println("占位符加自身toString用时: " + (end - start) / 1000);start = System.currentTimeMillis();JSONUtil jsonUtil1 = new JSONUtil();jsonUtil1.setO(user);log.trace("output4:{}", jsonUtil1);end = System.currentTimeMillis();System.out.println("占位符加自身toString调用JSON序列化用时: " + (end - start) / 1000);}
}

结果输出:

字符串拼接用时: 10
占位符加序列化用时: 10
占位符加自身toString用时: 0
占位符加自身toString调用JSON序列化用时: 0

本文的日志级别为debug,所以这里使用的是trace()进行打印,就是为了不打印查看延迟计算效果。通过上面结果可以看出,只要字符串拼接或者是使用占位符,但是对打印对象进行操作都不会出发延迟计算,都是直接计算出结果再执行log日志打印。
延迟计算条件:

  • 使用占位符进行日志打印
  • 打印的变量不能在打印语句中执行任何方法、操作。直接输出变量

在最终确定日志打印的时候会调用打印变量的toString()方法进行字符串拼接输出。如果默认的toString()方法或者Lombok输出的toString()方法输出的不满足诉求【例如,elk需要严格的json】,要么重写,要么封装到另一个对象中,另一个对象toString()方法进行序列化,例如上述的JSONUtil。

http://www.dtcms.com/wzjs/48325.html

相关文章:

  • 济南物流行业网站建设工具网站注册步骤
  • 代运营公司前十名资源网站优化排名优化
  • 17做网站广州营销推广软件
  • 建立一个个人网站宁波seo网络推广多少钱
  • jeecmsaso优化推广
  • 武汉做营销型网站推广识图找图
  • 可以自己做头像的网站12345浏览器
  • html模板网站模板下载企业网站推广效果指标分析
  • 筑梦做网站新乡网站优化公司推荐
  • 网站建设公司咋样自媒体推广渠道有哪些
  • 海南省建设网站的公司咖啡seo是什么意思
  • 优化网站建设价格磁力在线搜索引擎
  • 用别人公司名字做网站违法么卖友情链接的哪来那么多网站
  • php 资讯网站郑州疫情最新情况
  • 做医疗护具网站电脑培训学校学费多少
  • 郑州网站建设丶汉狮网络搜狐财经峰会
  • 做阿里巴巴网站费用吗快速排名优化
  • 做婚纱摄影网站厦门网站优化公司
  • 帝国做的网站怎么上传图片大兵seo博客
  • 网站做很久了百度没收录新闻热点事件2021(最新)
  • logo在线制作免费生成器无水印seo网络优化
  • 郑州高端网站建设公司刚刚刚刚刚刚好痛
  • 聊城网站建设推广百度关键词排名代做
  • 宁波公司做网站乐陵市seo关键词优化
  • 做网站上加入模块怎么加入爱站网关键词长尾挖掘工具
  • 做企业网站 需要注意的海外网络推广平台
  • 最大网站建设公司百度上做推广怎么做
  • 婚纱网站模板素材国际军事形势最新消息
  • 东莞市住房和城乡建设厅网站网络推广方案怎么写
  • b站推广入口2022建立公司网站需要多少钱