ログ出力はプレースホルダを使用してください{}

1135 ワード

reviewコードを使用すると、logログに直接「+」番号で接続する人が多すぎることがわかります.これはとても悪い習慣です.
In Logger, the logging methods are overloaded with forms that accept one, two or more values.[9] Occurrences of the simple pattern {} in the log message are replaced in turn with the values. This is simple to use yet provides a performance benefit when the values have expensive toString() methods. When logging is disabled at the DEBUG level, the logging framework does not need to evaluate the string representation of the values. In the following example, the values count or userAccountList only need to be evaluated when DEBUG is enabled; otherwise the overhead of the debug call is trivial.
private static final Logger LOG = LoggerFactory.getLogger(Wombat.class);
LOG.debug("There are now " + count + " user accounts: " + userAccountList); // slow
LOG.debug("There are now {} user accounts: {}", count, userAccountList);    // faster

上のdemoのように、2番目の書き方を選択してください.理由1では、2番目のプレースホルダは、ログ・レベルがdebugの場合にのみcountおよびuserAccountlistのtoStringメソッドを実行し、1番目の非debugレベルも実行します.理由2は、より読み取り可能である.
コードを書くには、これらの詳細に注意してください.