簡體   English   中英

在Java中的logback日志或stacktrace中打印對象ID

[英]Print object ids in logback log or stacktrace in java

有什么方法可以使Java或Logback在堆棧跟蹤和日志調用中為我提供對象ID(或地址等)。 換句話說,代替這個:

com.example.MyObject

在我的堆棧跟蹤中,我想要這樣:

com.example.MyObject@123456

對於日志記錄,我想要這樣:

LOG.debug("A message");

像這樣:

LOG.debug(this + ": A message");

但是,我看不到任何方法,因為Logback和Java本身似乎都使用StackTraceElement ,而這些都沒有記錄此信息。

對於獎勵積分,如何在dalvik中實現Object.toString() 通用的Java文檔說它是toHex(Object.hashCode())但我對此進行了測試,但不匹配。

如您所述,堆棧跟蹤本身在每個幀中都不包含this引用。 該信息用於調試器。 可能有一種駭人聽聞的方式來獲取您想要的信息,但它會很丑,很慢,而且可能很不穩定。 老實說,我不會打擾。

對於獎勵積分,如何在dalvik中實現Object.toString()

這是(類似) Object.javahttps : Object.java

從那里:

public String toString() {
    return getClass().getName() + '@' + Integer.toHexString(hashCode());
}

請注意,這是Object類中的基礎實現,但通常在子類中將其重寫。 這可以解釋您所看到的任何差異。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM