%s是基本库内置,而且格式化也更好:
logger.info("param1: %s, param2: %d{yyyy-MM-dd}", "", new Date());
logger.info("param1: {}, param2: {}", "", Formatter.format(new Date(), "yyyy-MM-dd"));
明显第一个更好
%s是基本库内置,而且格式化也更好:
logger.info("param1: %s, param2: %d{yyyy-MM-dd}", "", new Date());
logger.info("param1: {}, param2: {}", "", Formatter.format(new Date(), "yyyy-MM-dd"));
明显第一个更好
你的意思是:
logger.info(String.format("param1: %s, param2: %d{yyyy-MM-dd}", "", new Date()));
//vs
logger.info("param1: {}, param2: {}", "", Formatter.format(new Date(), "yyyy-MM-dd"));
当然第二种,因为第二种可以在日志级别大于info的时候,直接不去拼接字符串
但是虽然没有拼接字符串,但是Formatter.format(new Date(), "yyyy-MM-dd"))
还是执行了
这就是在一些框架里经常看到的代码的原因
if(logger.enableInfo()){
logger.info(...);
}
15 回答8.4k 阅读
8 回答6.3k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
有人对这个问题有什么研究的吗?代码洁癖,急