JUL 配置文件入门
跳到导航
跳到搜索
https://www.bilibili.com/video/BV1iJ411H74S?p=8
默认配置文件调用
Logger.getLogger(String name) ->
Logger.demandLogger(String name, String resourceBundleName, Class<?> caller) ->
LogManager.getLogManager() ->
manager.ensureLogManagerInitialized() ->
owner.readPrimordialConfiguration()->
readConfiguration()->
f = new File(f, "logging.properties")
I:\Java\jdk1.8.0_101\jre\lib\logging.properties
加载自定义配置文件
src/main/resources/logging.properties
handlers= java.util.logging.ConsoleHandler
.level= ALL
# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
JULTest.java
//加载自定义配置文件
@Test
public void testLogProperties() throws IOException {
// 读取配置文件,通过类加载器
InputStream resourceAsStream = JULTest.class.getClassLoader().getResourceAsStream("logging.properties");
// 创建 LogManager
LogManager logManager = LogManager.getLogManager();
// 通过 LogManager 加载配置文件
logManager.readConfiguration(resourceAsStream);
// 创建日志记录器
Logger logger = Logger.getLogger("io.github.jihch");
logger.severe("severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
logger.finer("finer");
logger.finest("finest");
}
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
严重: severe
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
警告: warning
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
信息: info
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
配置: config
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
详细: fine
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
较详细: finer
二月 23, 2023 8:58:36 上午 io.github.jihch.JULTest test01
非常详细: finest
添加 Handler
logging.properties
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler
.level= ALL
# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
这样将在项目根目录下增加日志文件的输出
关键点是在 handlers 后面追加了下面的 FileHandler