私たちはかなり大きなサーバーアプリを開発しています。各アクションはログによって追跡されます。toString メソッドの呼び出しに関する多くのログがあります。残念ながら、それらのほとんどが必要ですが、製品で何が起こるかを追跡することはできません。toString メソッドを改善しようとするのは理にかなっていますか? たとえば、 toString の結果をメモリに入れ、フィールドが更新された場合は更新します。
example of my toString
public classs InMessage{
//declared 20+ fields
@Override
public String toString() {
StringBuilder builder = new StringBuilder(this.getClass().getSimpleName());
builder.append(": [");
builder.append(super.toString());
builder.append("; updateTime: ");
builder.append(updateTime);
//forexample 20 fields here
builder.append(";]");
return builder.toString();
}}
then we process InMessage in some way and log each action
log.debug("We received inMessage: {}", inMessage);
この議論の後、可能な限りログの数を減らすことに決めました。