在記錄器的情況下,它表示對於每個記錄器都存在隱含的參數構造成本。log4j v2格式化功能
例如: -
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
這招致構造的消息參數,即兩個整數變換i和條目[I]爲字符串,和連接中間的字符串,成本不管該消息是否將記錄與否。參數構建的成本可能相當高,並且取決於涉及參數的大小。
在log 4j網站上,給出了避免參數構造成本的最佳方法是使用Log4j 2的格式化功能。例如,而不是上面寫道:
logger.debug("Entry number: {} is {}", i, entry[i]);
這個格式化功能發生了什麼,這次花費的時間會少一些。它是不是創建像以前的情況下創建的字符串。請有人解釋這一點?
以及我的第一個查詢是關於在第二個選項中使用的更改的方法,其中我們在logger.debug中傳遞3個參數該方法如何處理這些參數。 log4j v2 格式化功能的新功能其次,你的意思是說,在創建參數記錄器之前的第二種情況下,將檢查調試模式是否啓用。 –