国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用SLF4J輸出log的正確姿勢(shì)

2019-11-14 10:02:38
字體:
供稿:網(wǎng)友

slf4jjava的一種Log Api,類似Apache Commons Logging 。

SLF4J

最直接的log方式

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

這種用字符串拼接的構(gòu)造方式在debug disabled的情況下,字符串消息還是會(huì)被求值,存在類型轉(zhuǎn)換和字符串連接的性能消耗。

log前做條件判斷

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

isDebugEnabled()的方法在debug disabled的情況下不存在構(gòu)造字符串參數(shù)的性能消耗,但是如果debug enabled,debug是否被enabled將會(huì)被求值兩次:一次是isDebugEnabled(),一次是debug()本身(該影響較小,因?yàn)榍笾祃ogger狀態(tài)花費(fèi)的時(shí)間比真正log一條語句花費(fèi)的時(shí)間的1%都還要小)。

使用SLF4J的格式化功能

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

使用SLF4J的格式化功能,這種用法不存在上面提到的缺點(diǎn)。SLF4J使用自己的格式化語法{},同時(shí)提供了適合不同參數(shù)個(gè)數(shù)的方法重載:

logger.debug(String format, Object param); //支持一個(gè)參數(shù)logger.debug(String format, Object param1, Object param2); //支持兩個(gè)參數(shù)logger.debug(String format, Object... param); //任意數(shù)量參數(shù),構(gòu)造參數(shù)數(shù)組具有一定的性能損耗

連續(xù)的{}才被認(rèn)為是格式化占位符,所以:

logger.debug("Set {1,2} differs from {}", "3"); //output:Set {1,2} differs from 3logger.debug("Set {1,2} differs from {{}}", "3"); //output:Set {1,2} differs from {3}

用”/”轉(zhuǎn)義{}占位符

logger.debug("Set //{} differs from {}", "3"); //output:Set {} differs from 3

用“/”本身轉(zhuǎn)義“{}”中的”/”

logger.debug("File name is C:////{}.", "file.z
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安溪县| 峡江县| 绥德县| 安泽县| 泸溪县| 津市市| 宜章县| 黄石市| 塘沽区| 北安市| 永安市| 连城县| 兖州市| 湘潭县| 瑞安市| 特克斯县| 景东| 马龙县| 齐齐哈尔市| 庄河市| 天水市| 沈阳市| 宁南县| 平原县| 嘉善县| 迁西县| 合肥市| 广昌县| 四子王旗| 台州市| 水富县| 成都市| 云浮市| 青州市| 化德县| 竹溪县| 阳东县| 措美县| 冕宁县| 临沂市| 化德县|