📅  最后修改于: 2023-12-03 15:01:54.967000             🧑  作者: Mango
在Java中,Logger类用于记录日志信息,包括错误信息、调试信息等。Logger类的setUseParentHandlers()方法是控制是否将日志传递给其父Logger的方法,可以用于禁止或启用继承和传递日志记录器的情况。
public void setUseParentHandlers(boolean useParentHandlers)
useParentHandlers
: 是否传递记录器的记录消息给父Logger。true
表示使用默认行为,将消息传递给父Logger,否则不会传递。import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LoggerExample {
public static void main(String[] args) {
// 创建Logger对象
Logger logger = Logger.getLogger("com.example.logger");
logger.setLevel(Level.ALL);
// 创建ConsoleHandler对象
Handler consoleHandler = new ConsoleHandler();
// 添加ConsoleHandler到Logger
logger.addHandler(consoleHandler);
// 设置Logger的useParentHandlers属性为false,禁止使用默认行为
logger.setUseParentHandlers(false);
// 输出日志信息
logger.severe("严重错误信息");
logger.warning("警告信息");
logger.info("普通信息");
logger.fine("详细信息");
logger.finer("更详细的信息");
logger.finest("非常详细的信息");
}
}
输出结果:
严重错误信息
警告信息
普通信息
详细信息
更详细的信息
非常详细的信息
在这个示例中,我们创建一个Logger对象,并将其级别设置为Level.ALL。然后,我们创建一个ConsoleHandler对象,并将其添加到Logger中。接下来,我们将Logger的useParentHandlers属性设置为false,禁止Logger使用默认行为,不再将日志消息传递给其父Logger。最后,我们调用Logger对象的不同级别的日志方法来输出不同级别的日志信息。由于我们已经禁止了使用默认行为,所有日志信息都只会输出在ConsoleHandler中。