log4j2logback打印日志的效率问题【细节3】bean属性拷贝【细节4】
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】相关推荐
- Android真机调试打印日志的方法
使用模拟器效率是很低的,所以真机调试是多数开发者的选择.使用模拟器调试程序和使用真机调试程序还是有一些不同的.比如,某些手机在调试过程中,不会打印日志出来. 真机调试不输出日志到logcat的原因是手 ...
- 打印日志的10个建议
2019独角兽企业重金招聘Python工程师标准>>> 1,工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为和当前活动是多么重要.有的人很高兴的就在代码里加上了这么句: ...
- android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
Mac 下 Android Studio 不打印日志的解决办法 Mac 下 Android Studio 不打印日志的解决办法 前言: 在 Mac 下使用 Android Studio 时常会遇到 A ...
- log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件
springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...
- 使用Jlink RTT工具打印日志
使用Jlink RTT工具打印日志 背景 平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串口的中断可能会影响代码的执行效率. SEGGER RTT支持使用J- ...
- 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)
FFmpeg的打印日志实现在FFmpeg-n4.2.1/libavutil/log.c中. 一.设置log等级 1.设置日志级别 日志默认级别是AV_LOG_INFO static int av_lo ...
- 别在 Java 代码里乱打日志了,这才是打印日志的正确姿势!
本文来源:http://t.cn/E9BkD7a 使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打 ...
- 不能精准定位bug?可能是你没get到这几个打印日志的诀窍!
作者:lrwinx 来源:http://t.cn/E9BkD7a 使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一. 实现方式统一使用: Logback框架 打日志的正确方 ...
- java SpringWeb如何实现打印日志
今天后台调试,调用后台接口却发现没有把日志打印出来 于是开始配置打印日志 1.导入log4j的jar import org.apache.log4j.Logger; 2.配置log4j.propert ...
最新文章
- Win32下VC编译OpenSSl
- 《linux内核设计与实现》读书笔记第一、二章
- STM32 - 定时器的设定 - 基础 01.1 - Repetition counter
- 怎么样才显示暗=安装好了mysql_linux mysql安装
- 信用卡-可恶的招商银行,可恶的循环利息
- java IDEA设置程序启动命令
- 二十一、日期Date类型
- 小王在CSDN的六年创作历程
- AB PLC软件如何授权或者破解
- 树莓派linux虚拟键盘,树莓派raspbian安装matchbox-keyboard虚拟键盘
- 利用JS实现简单的注册界面验证小案例
- srvany.exe读取配置文件问题
- 章节9 性能和资源使用 - Segger SystemView使用手册(译文)
- px4原生源码学习-(4)--Nuttx 实时操作系统编程
- Nginx实现动静分离(Nginx图片服务器及404问题解决)
- RmNet和CDC-ECM的区别,NDIS和RNDIS的区别。
- 温故知新(五)——三参数陷波滤波器离散化推导及MATLAB实现
- 论文阅读——Knowledge-Bridged Causal Interaction Network for Causal Emotion Entailment
- 电路中的VCC是什么意思?
- 【Matlab电力负荷预测】日特征气象因素支持向量机SVM电力负荷预测【含源码 1612期】
热门文章
- 记一次Linux服务器因redis漏洞的挖矿病毒入侵
- 译注(3): NULL-计算机科学上最糟糕的失误
- Excel VBA(宏):添加宏
- Makefile和shell脚本调用上的一些总结
- IOS开发基础之微博项目第1天-OC版
- C语言编写工资管理系统类似学生管理系统
- android view销毁回调,Android View 常用的回调方法
- python2与python3同时安装_Win10下python3和python2同时安装并解决pip共存问题
- 程序员基本功03常见JAVA集合的实现细节
- 计算机网络IEEE 802,已连接到 IEEE 802.1 x 身份验证的计算机网络通过另一 802.1 x 启用的设备未连接到正确的网络...