Pet*_*ter 10 java logging glassfish
我正在寻找一种方法来设置内部类的日志级别,假设我有以下类:
package mypackage;
class Outer {
Inner inner = new Inner();
public void logSomething() {
Logger.getLogger(Outer.class.getName()).log(Level.FINE, "I'm alive!");
inner.logSomething();
}
class Inner {
public void logSomething() {
Logger.getLogger(Inner.class.getName()).log(Level.FINE, "I'm alive too!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用名称设置外部的日志级别mypackage.Outer.但是我该如何设置呢Inner?我测试了以下内容但没有成功:
mypackage.Outermypackage.Outer.Innermypackage.Outer$Inner (给出错误)mypackage.Inner有谁知道有没有办法做到这一点?
Inner.class.getName()正在返回mypackage.Outer$Inner不遵循Logger.getLogger()参数的预期约定
name- 记录器的名称。这应该是一个点分隔的名称,通常应该基于子系统的包名或类名,例如 java.net 或 javax.swing
您可以明确使用
Logger.getLogger("myPackage.Outer.Inner").log(Level.FINE, "I'm alive too!")
Run Code Online (Sandbox Code Playgroud)
并使用设置级别 myPackage.Outer.Inner
奇怪的是,消息通过SimpleFormatter()使用 $ 作为内部类来格式化,因为它输出的是类名,而不是记录器名称
28-feb-2013 19:04:16 mypackage.Outer$Inner logSomething
FINE: I'm alive too!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2847 次 |
| 最近记录: |