記事のディレクトリ
なぜプレースホルダーを使用するのですか?
コードがより直感的で変更しやすいためです。
ログを印刷するときに、プレースホルダーがサポートされているため、非常に便利です。
ログのフォーマット(推奨)
String name="澹台名";
String age="30";
logger.info("我叫{},今年{}岁。",name,age);
ロガーログの形式。これは最も更新された形式である必要があります。
返された情報をスプライスするときにプレースホルダーを使用する場合はどうすればよいですか?
ストリングスプライシング
String name="任恒之";
String age="30";
System.out.println("我叫"+name+",今年"+age+"岁。");
最も伝統的なスプライシング方法は、多くのパラメーターがある場合、あなたは痛みと幸福を知っているでしょう。
String.format()フォーマット
String url = "我叫%s,今年%s岁。";
String name = "程咬金";
String age = "28";
url = String.format(url,name,age);
System.out.println(url);
それは時間がかかります。
MessageFormat.format()形式
String url02 = "我叫{0},今年{1}岁。";
String name = "李渊";
String age = "28";
url02 = MessageFormat.format(url02,name,age);
System.out.println(url02);
これも時間がかかります。
StringbuilderまたはstringBufferを使用する
String name="李元霸";
String age="30";
new StringBuffer("我叫").append(name).append(",今年")
.append(age).append("岁。");
これはより効率的であり、コードはクリーンではありません。
ログに付属のフォーマットツール(推奨)
slf4jには分析ツールが付属しているので、気にしないでください。
String name="鲁智深";
String age="30";
FormattingTuple format =
MessageFormatter.format("我叫{},今年{}岁。", name,age);
System.out.println(format.getMessage());
基本的にロガーログと同じで、効率は良いです。
注意:getMessage()を使用するために攪拌を取得します。オブジェクトを直接出力したり、toString()を使用したりしないでください。