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

首頁 > 學院 > 開發設計 > 正文

用SLF4J輸出log的正確姿勢

2019-11-14 10:36:10
字體:
來源:轉載
供稿:網友

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

SLF4J

最直接的log方式

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

這種用字符串拼接的構造方式在debug disabled的情況下,字符串消息還是會被求值,存在類型轉換和字符串連接的性能消耗。

log前做條件判斷

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

isDebugEnabled()的方法在debug disabled的情況下不存在構造字符串參數的性能消耗,但是如果debug enabled,debug是否被enabled將會被求值兩次:一次是isDebugEnabled(),一次是debug()本身(該影響較小,因為求值logger狀態花費的時間比真正log一條語句花費的時間的1%都還要小)。

使用SLF4J的格式化功能

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

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

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

連續的{}才被認為是格式化占位符,所以:

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}

用”/”轉義{}占位符

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

用“/”本身轉義“{}”中的”/”

logger.debug("File name is C:////{}.", "file.z
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥滨县| 轮台县| 沁源县| 乌恰县| 广昌县| 大英县| 靖边县| 合水县| 沙雅县| 泽普县| 扎兰屯市| 隆林| 安乡县| 朔州市| 德惠市| 安陆市| 禄劝| 孝义市| 木兰县| 武夷山市| 屏东市| 红桥区| 富锦市| 林口县| 昭苏县| 岳阳市| 渝北区| 宜昌市| 龙口市| 秀山| 灵璧县| 武胜县| 赣州市| 陕西省| 义马市| 师宗县| 清镇市| 宜黄县| 彩票| 云南省| 丹阳市|