2019独角兽企业重金招聘Python工程师标准>>>

1).在打印日志时,我们可以使用下面的代码:

logger.debug("Entry Number :"+ i + " is "+String.valueOf(entry[i]));

这样做的效率比较低。因为他会遭受到【变量i】和【entry】转换成一个字符串,并且再加上字符串的拼接。这些时间不管你打印不打印这些日志都会消耗。

即有可能你讲DEBUG的模式打印的日志的功能关闭了,但是上面那就话还是会消耗时间。

2).但是如果变成下面的代码,就不会消耗时间了:

if(logger.isDebugEnabled()) { logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
}

如果debug模式关闭,就不会消耗时间,如果debug模式是开放的,就会消耗时间。从而提高了效率

3).使用Logback中的字符串的占位符

在logback中占位符是一对花括号:【{}】.

对于:

Object entry = new SomeObject();
logger.debug("The entry is {}.", entry);

如果日志需要的打印的话,就会将{}变成对应的变量的值。如果不需要打印的话,他也不会消耗时间。如同加上了

if(logger.isDebugEnabled()) {

这句话。提高了效率。

4)当然也可有多个变量的值:

logger.debug("The new entry is {}. It replaces {}.", entry, oldEntry);
Object[] paramArray = {newVal, below, above};
logger.debug("Value {} was inserted between {} and {}.", paramArray);

5)所以,在打印日志时:为了提高效率:有两种方式:

①加上logger.isDebugEnabled()或者logger.isInfoEnable()等等

②使用占位符。

----------------------------------------------------------------------------------------------------

下面是一个示例:打开debug

bean属性拷贝

Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)

cglib是最快的

如果是mapping映射使用: orika

另外还可以使用springside4(各种优秀框架集成)

转载于:https://my.oschina.net/u/1266221/blog/794004

log4j2logback打印日志的效率问题【细节3】bean属性拷贝【细节4】相关推荐

  1. Android真机调试打印日志的方法

    使用模拟器效率是很低的,所以真机调试是多数开发者的选择.使用模拟器调试程序和使用真机调试程序还是有一些不同的.比如,某些手机在调试过程中,不会打印日志出来. 真机调试不输出日志到logcat的原因是手 ...

  2. 打印日志的10个建议

    2019独角兽企业重金招聘Python工程师标准>>> 1,工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为和当前活动是多么重要.有的人很高兴的就在代码里加上了这么句: ...

  3. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法

    Mac 下 Android Studio 不打印日志的解决办法 Mac 下 Android Studio 不打印日志的解决办法 前言: 在 Mac 下使用 Android Studio 时常会遇到 A ...

  4. log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件

    springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...

  5. 使用Jlink RTT工具打印日志

    使用Jlink RTT工具打印日志 背景 平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串口的中断可能会影响代码的执行效率. SEGGER RTT支持使用J- ...

  6. 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)

    FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中. 一.设置log等级 1.设置日志级别 日志默认级别是AV_LOG_INFO static int av_lo ...

  7. 别在 Java 代码里乱打日志了,这才是打印日志的正确姿势!

    本文来源:http://t.cn/E9BkD7a 使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打 ...

  8. 不能精准定位bug?可能是你没get到这几个打印日志的诀窍!

    作者:lrwinx 来源:http://t.cn/E9BkD7a 使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一. 实现方式统一使用: Logback框架 打日志的正确方 ...

  9. java SpringWeb如何实现打印日志

    今天后台调试,调用后台接口却发现没有把日志打印出来 于是开始配置打印日志 1.导入log4j的jar import org.apache.log4j.Logger; 2.配置log4j.propert ...

最新文章

  1. Win32下VC编译OpenSSl
  2. 《linux内核设计与实现》读书笔记第一、二章
  3. STM32 - 定时器的设定 - 基础 01.1 - Repetition counter
  4. 怎么样才显示暗=安装好了mysql_linux mysql安装
  5. 信用卡-可恶的招商银行,可恶的循环利息
  6. java IDEA设置程序启动命令
  7. 二十一、日期Date类型
  8. 小王在CSDN的六年创作历程
  9. AB PLC软件如何授权或者破解
  10. 树莓派linux虚拟键盘,树莓派raspbian安装matchbox-keyboard虚拟键盘
  11. 利用JS实现简单的注册界面验证小案例
  12. srvany.exe读取配置文件问题
  13. 章节9 性能和资源使用 - Segger SystemView使用手册(译文)
  14. px4原生源码学习-(4)--Nuttx 实时操作系统编程
  15. Nginx实现动静分离(Nginx图片服务器及404问题解决)
  16. RmNet和CDC-ECM的区别,NDIS和RNDIS的区别。
  17. 温故知新(五)——三参数陷波滤波器离散化推导及MATLAB实现
  18. 论文阅读——Knowledge-Bridged Causal Interaction Network for Causal Emotion Entailment
  19. 电路中的VCC是什么意思?
  20. 【Matlab电力负荷预测】日特征气象因素支持向量机SVM电力负荷预测【含源码 1612期】

热门文章

  1. 记一次Linux服务器因redis漏洞的挖矿病毒入侵
  2. 译注(3): NULL-计算机科学上最糟糕的失误
  3. Excel VBA(宏):添加宏
  4. Makefile和shell脚本调用上的一些总结
  5. IOS开发基础之微博项目第1天-OC版
  6. C语言编写工资管理系统类似学生管理系统
  7. android view销毁回调,Android View 常用的回调方法
  8. python2与python3同时安装_Win10下python3和python2同时安装并解决pip共存问题
  9. 程序员基本功03常见JAVA集合的实现细节
  10. 计算机网络IEEE 802,已连接到 IEEE 802.1 x 身份验证的计算机网络通过另一 802.1 x 启用的设备未连接到正确的网络...