鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ slf4j為什么用{}而不是%s

slf4j為什么用{}而不是%s

%s是基本庫內(nèi)置,而且格式化也更好:
logger.info("param1: %s, param2: %d{yyyy-MM-dd}", "", new Date());
logger.info("param1: {}, param2: {}", "", Formatter.format(new Date(), "yyyy-MM-dd"));
明顯第一個(gè)更好

回答
編輯回答
雨蝶

你為什么覺得第一個(gè)好用呢?

2018年8月3日 13:17
編輯回答
怣痛

你的意思是:

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"));

當(dāng)然第二種,因?yàn)榈诙N可以在日志級別大于info的時(shí)候,直接不去拼接字符串
但是雖然沒有拼接字符串,但是Formatter.format(new Date(), "yyyy-MM-dd"))還是執(zhí)行了
這就是在一些框架里經(jīng)??吹降拇a的原因

if(logger.enableInfo()){
    logger.info(...);
}
2018年9月3日 17:42
編輯回答
失心人

有人對這個(gè)問題有什么研究的嗎?代碼潔癖,急

2017年12月21日 05:56