【问题标题】:Get "name" for object, corresponding to package name and object name获取对象的“名称”,对应包名和对象名
【发布时间】:2013-06-20 15:23:09
【问题描述】:

给定对象:

package com.foo.bar
object Sample {
   val LOG = org.slf4j.LoggerFactory.getLogger(???)
   ....
}

为了获得“com.foo.bar.Sample”,我在 getLogger 语句中放入了什么语句/函数/什么?

基本上,这只是代码风格的问题,目前我将 IntelliJ 配置为使用字符串生成 LOG 语句,从“packagename.classname”之类的模板进行评估。但是可能有更好的方法吗?

谢谢。

【问题讨论】:

  • 你应该试试 scala 日志记录,它简单、容易,而且你不必猜测类名或使用记录器工厂:github.com/typesafehub/scalalogging
  • 是的,为什么要在已经存在的源文件中放入类名?干!

标签: scala logging slf4j


【解决方案1】:

在这种情况下,您可以使用getClass().getName()

【讨论】:

  • 它不像这样工作,它添加尾随 $,并且对于嵌套对象,类名看起来像 opa.opa.opapa.test$test1$ 而不是 opa.opa.opapa.test.test1
  • 那么为什么不去掉结尾的$ 并用. 替换另一个$
  • 在这种情况下,最好采用我目前的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
相关资源
最近更新 更多