2016-06-09 87 views
0

創建用於創建SLF記錄一個NetBeans代碼模板這裏描述:如何在NetBeans代碼模板中使用花括號來爲slf4j模板創建示例?

http://wiki.netbeans.org/SLF4JCodeTemplate

但是創建日誌語句,如代碼模板

logger.debug("Something: {}", var); 

比預期的難,因爲模板語言不能平衡花括號。這意味着它會在第一個結束大括號處結束捕獲。

存在一些例子,例如How to get current class name in Netbeans code template?但他們沒有涉及花括號的問題。

我曾試圖逃跑,他們以各種方式我能想到這樣的農場,其中包括:

${LOGGER default="logger" editable=false}.debug("${logMessage}${: '{}'}", ${EXP instanceof="<any>" default="exp"}); 

${LOGGER default="logger" editable=false}.debug("${logMessage}${: \{\}}", ${EXP instanceof="<any>" default="exp"}); 

,但沒有運氣。此外,我的谷歌技能迄今爲止一直讓我失望。

回答

0

原來有一個簡單的解決方案。我沒有發現它接近有關NetBeans代碼模板任何東西任何地方,但下一個關於freemarker的問題:

How to output ${expression} in Freemarker without it being interpreted?

基本上答案是使用R「......」周圍的代碼,如下所示:

${LOGGER default="logger" editable=false}.debug("${logMessage}${:r"{}"}", ${EXP instanceof="<any>" default="exp"}); 

現在,這可以被分配到SLD,這樣我就可以SLT類型,擴展爲:

logger.debug("logMessage: {}", <last variable>); 

哪裏「的LogMessage」被選擇(這樣我就可以有這麼覆蓋它mething有用,一個選項卡選擇「:{}」,所以我可以刪除它,如果我想記錄沒有參數和最後一個選項卡選擇哪個是最後分配的值(以防我想替換或刪除它)。