[英]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.java
: https : Object.java
从那里:
public String toString() {
return getClass().getName() + '@' + Integer.toHexString(hashCode());
}
请注意,这是Object
类中的基础实现,但通常在子类中将其重写。 这可以解释您所看到的任何差异。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.