[解決済み] ロガー slf4j 文字列の連結の代わりに{}でフォーマットすることの利点
2022-09-25 09:33:52
質問
を使用する利点はありますか?
{}
を使う利点はありますか?
slf4jからの例
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
の代わりに
logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT);
設定ファイルによっては、実行時にパラメータ評価(と文字列連結)を回避できるため、速度最適化のためだと思います。しかし、パラメータが2つしかない場合、文字列連結以外の選択肢がないことがあります。この問題についての見解が必要です。
どのように解決するのでしょうか?
それは は 文字列連結のパフォーマンスに関するものです。ロギング ステートメントが密集している場合、潜在的に重要です。
(SLF4J 1.7以前) しかし、2つのパラメータしか可能ではありません
ロギング文の大半は2つ以下のパラメータを持つため、バージョン1.6までのSLF4J APIは大半のユースケースをカバーしています(だけ)。 API設計者は、APIバージョン1.7以降、varargsパラメータを持つオーバーロードされたメソッドを提供しています。
2つ以上のパラメータが必要で、1.7以前のSLF4Jにこだわる場合は、文字列連結または
new Object[] { param1, param2, param3, ... }
. パフォーマンスはそれほど重要ではないほど、それらの数は少ないはずです。
関連
-
[解決済み] コピーオンライトとは何ですか?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] Java の toString() における StringBuilder と文字列連結の比較
-
[解決済み] Pythonの文字列をスペースで埋めるにはどうしたらいいですか?
-
[解決済み] 文字列の連結:concat()と "+"演算子の比較
-
[解決済み] CPUバウンド」「I/Oバウンド」とは、どのような意味ですか?
-
[解決済み】Javaで文字列のConcatenationよりもString.formatを使用する方が良い習慣ですか?
-
[解決済み】文字列フォーマットにおける名前付きプレースホルダー
-
[解決済み] なぜJava APIはshortやbyteの代わりにintを使うのですか?
-
[解決済み】なぜjava.util.loggingを使用しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン