Java实现关闭控制台日志运行时找不到Level符号错误如何解决
问题原因及修复方案
错误原因
- 代码仅导入了
java.util.*,而Logger和Level都属于java.util.logging子包,Java的包通配符*只会匹配当前包下的类,不会自动导入子包中的类,因此编译器无法识别Level符号。
修复代码
直接替换原有代码即可实现关闭对应Logger的日志输出:
import java.util.logging.Logger; import java.util.logging.Level; public class HelloWorld{ public static void main(String []args){ Logger helloLogger = Logger.getLogger("HelloWorld"); // 关闭当前Logger的日志输出 helloLogger.setLevel(Level.OFF); // 可选:如果要彻底屏蔽所有关联Handler的输出,可额外添加以下代码 // for (var handler : helloLogger.getParent().getHandlers()) { // handler.setLevel(Level.OFF); // } System.out.println("Hello World"); } }
补充说明
如果只设置Logger的级别为OFF,部分场景下父Logger的Handler仍可能输出日志,若需要完全关闭所有控制台日志输出,可以解开上面注释的Handler级别设置代码。
内容的提问来源于stack exchange,提问作者Priya
相关产品推荐
相关产品推荐

