ロガーログのプレースホルダーと同様の文字列の形式


なぜプレースホルダーを使用するのですか?
コードがより直感的で変更しやすいためです。

ログを印刷するときに、プレースホルダーがサポートされているため、非常に便利です。

ログのフォーマット(推奨)

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()を使用したりしないでください。

おすすめ

転載: blog.csdn.net/enthan809882/article/details/114089979