初始化Logger是Java程序中常见的操作之一,一般是用配置文件的方式来实现。但是,有时候我们不想使用配置文件的方式来初始化Logger,而是想通过代码来进行初始化。下面是两条示例说明来详细讲解如何不通过配置文件初始化Logger。
示例一:使用代码初始化rootLogger
rootLogger是Logger hierarchy中的最高级别的Logger,我们可以使用如下代码来初始化rootLogger:
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Test {
private static final Logger logger = Logger.getLogger("");
public static void main(String[] args) {
logger.setLevel(Level.FINEST);
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.FINEST);
logger.addHandler(handler);
logger.info("Initialize rootLogger by code.");
}
}
通过上面的代码,我们首先获取Logger对象,然后设置Logger的级别为FINEST。接着,我们创建了一个ConsoleHandler,并将其级别也设置为FINEST。最后,我们将ConsoleHandler添加到Logger中,这样ConsoleHandler就成为了Logger的Handler之一。
运行程序后,我们可以看到在控制台上输出信息“Initialize rootLogger by code.”,这个信息表明我们已经成功用代码初始化了rootLogger。
示例二:使用代码初始化特定包下的Logger
如果我们只想初始化特定包下的Logger,可以使用如下代码:
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Test {
private static final Logger logger = Logger.getLogger(Test.class.getPackage().getName());
public static void main(String[] args) {
logger.setLevel(Level.FINEST);
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.FINEST);
logger.addHandler(handler);
logger.info("Initialize logger by code in package " + Test.class.getPackage().getName());
}
}
在这个例子中,我们首先获取了Test类所在包的名称(即包的全限定名),然后获取其对应的Logger对象。接着,我们将Logger的级别和Handler设置为同上例子中的操作,最后在控制台上输出初始化信息。
运行程序后,我们可以看到在控制台上输出信息“Initialize logger by code in package com.example”,这个信息表明我们已经成功用代码初始化了com.example包下的Logger。
以上是两个通过代码实现Logger初始化的示例,我们可以看出,使用代码初始化Logger相比于使用配置文件初始化Logger,有更灵活、更直观的掌控方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java不通过配置文件初始化logger示例 - Python技术站