java logger到几个类和包的一个文件

时间:2009-05-26 12:24:00

标签: java logging

我正在试图弄清楚如何使用java.util.logging功能。所有教程都展示了如何从主类登录到日志文件,但我无法弄清楚如何在各种类中登录到一个文件。我有一个Web服务和一个Web服务客户端,我希望能够在使用Web服务客户端时记录Web服务上的错误。

我尝试创建一个记录器类,但我最终得到了38个空日志文件。我应该如何创建一个在Web服务上的每个类中调用的记录器? Web服务有两个不同的包和各种类。

在我的搜索中,我遇到了单例记录器类的想法。我正在试图弄清楚如何实现它:

public class Logger{

private static Logger self = new Logger();

//empty private constructor
private Logger(){

}

//synchronized getInstance
public static synchronized Logger getInstance(){
    if (self == null)
        self = new Logger();
    return self;
}

//prevent cloning
public Object clone() throws CloneNotSupportedException {
    throw new CloneNotSupportedException(); 
}

//synchronized logging
public synchronized void debug(String msg){

}
public synchronized void info(String msg){

}
public synchronized void fatal(String msg){

}

}

要在我的其他课程中调用它,我是否需要在每个类中创建一个文件处理程序?

1 个答案:

答案 0 :(得分:2)

这就是JDK logging framework Handlers的含义。将FileHandler添加到记录器层次结构根目录的记录器中,所有内容都将记录到该文件处理程序中。你必须注意处理程序也有自己的日志级别。

因此,无需实现自己的日志框架。它已经存在,它已经很好了。 (如果您不喜欢JDK日志记录,请将Apache Commons Logging与JDK记录器或log4j一起使用。)

相关问题