查看“JUL 配置文件详解”的源代码
←
JUL 配置文件详解
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1iJ411H74S?p=9 === logging.properties === <syntaxhighlight lang="properties"> # RootLogger 顶级父元素指定的默认处理器为:ConsoleHandler handlers= java.util.logging.FileHandler # RootLogger 顶级父元素指定的默认日志级别为:ALL .level= ALL # 向日志文件输出的 Handler 对象 # 指定日志文件路径 java%u.log java.util.logging.FileHandler.pattern = java%u.log # 指定日志文件内容大小为 50000 条 java.util.logging.FileHandler.limit = 50000 # 指定日志文件数量 java.util.logging.FileHandler.count = 1 # 指定 Handler 对象日志消息格式对象 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # 向控制台输出的 Handler 对象 # 指定 Handler 对象的日志级别 java.util.logging.ConsoleHandler.level = ALL # 指定 Handler 对象的日志消息格式对象 java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter # 指定 Handler 对象的字符集 java.util.logging.ConsoleHandler.encoding = UTF-8 # 指定日志消息格式 java.util.logging.SimpleFormatter.format = %4$s: %5$s [%1$tc]%n </syntaxhighlight> ==== 更换向日志文件输出的 Handler 对象对应的日志消息格式对象 ==== <syntaxhighlight lang="properties"> # 指定 Handler 对象日志消息格式对象 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter </syntaxhighlight>java0.log<syntaxhighlight lang="console"> 严重: severe [星期四 二月 23 09:30:36 CST 2023] 警告: warning [星期四 二月 23 09:30:37 CST 2023] 信息: info [星期四 二月 23 09:30:37 CST 2023] 配置: config [星期四 二月 23 09:30:37 CST 2023] 详细: fine [星期四 二月 23 09:30:37 CST 2023] 较详细: finer [星期四 二月 23 09:30:37 CST 2023] 非常详细: finest [星期四 二月 23 09:30:37 CST 2023] </syntaxhighlight> 日志文件内容由原先的 XML 格式变成了简单的行文本记录格式 ==== 指定以追加方式添加日志内容 ==== <syntaxhighlight lang="properties"> java.util.logging.FileHandler.append = true </syntaxhighlight> 重复运行多次程序,每一次运行不再覆盖上一次运行记录的日志内容 ==== 使用自定义 Logger ==== <syntaxhighlight lang="properties"> # RootLogger 顶级父元素指定的默认处理器为:ConsoleHandler handlers= java.util.logging.FileHandler # RootLogger 顶级父元素指定的默认日志级别为:ALL .level= ALL # 自定义 Logger 使用 io.github.jihch.handlers = java.util.logging.ConsoleHandler io.github.jihch.level = CONFIG # 关闭默认配置 io.github.jihch.useParentHandler = false # 向日志文件输出的 Handler 对象 # 指定日志文件路径 java%u.log java.util.logging.FileHandler.pattern = java%u.log # 指定日志文件内容大小为 50000 条 java.util.logging.FileHandler.limit = 50000 # 指定日志文件数量 java.util.logging.FileHandler.count = 1 # 指定 Handler 对象日志消息格式对象 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # 指定以追加方式添加日志内容 java.util.logging.FileHandler.append = true </syntaxhighlight><syntaxhighlight lang="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"); Logger logger2 = Logger.getLogger("test"); logger2.severe("severe test"); logger2.warning("warning test"); logger2.info("info test"); logger2.config("config test"); logger2.fine("fine test"); logger2.finer("finer test"); logger2.finest("finest test"); } </syntaxhighlight>控制台:<syntaxhighlight lang="console"> 严重: severe [星期四 二月 23 10:31:54 CST 2023] 警告: warning [星期四 二月 23 10:31:54 CST 2023] 信息: info [星期四 二月 23 10:31:54 CST 2023] 配置: config [星期四 二月 23 10:31:54 CST 2023] </syntaxhighlight>java0.log:<syntaxhighlight lang="console"> 严重: severe test [星期四 二月 23 10:31:54 CST 2023] 警告: warning test [星期四 二月 23 10:31:54 CST 2023] 信息: info test [星期四 二月 23 10:31:54 CST 2023] 配置: config test [星期四 二月 23 10:31:54 CST 2023] 详细: fine test [星期四 二月 23 10:31:54 CST 2023] 较详细: finer test [星期四 二月 23 10:31:54 CST 2023] 非常详细: finest test [星期四 二月 23 10:31:54 CST 2023] </syntaxhighlight> 因为指定了 io.github.jihch 对应的 Logger 对象使用 ConsoleHandler(<code>io.github.jihch.handlers = java.util.logging.ConsoleHandler</code>),所以控制台中记录了日志内容; 又因为指定了 io.github.jihch 对应的 Logger 对象 logger 不使用父级 Handler(<code>io.github.jihch.useParentHandler = false</code>),所以 logger 记录的内容没有出现在 java0.log 中; 而在配置文件中并没有为 test 对应的 Logger 对象 logger2 指定对应的 Handler,所以默认使用了 RootLogger 的 FileHandler(<code>handlers= java.util.logging.FileHandler</code>),输出到了 java0.log; 同时因为使用了 RootLogger 的日志级别(<code>.level= ALL</code>),logger2 记录在 java0.log 中的内容包含了所有日志级别的记录内容; 又因为指定了 io.github.jihch 对应的 Logger 对象 logger 的日志级别是 CONFIG(<code>io.github.jihch.level = CONFIG</code>),所以控制台中没有记录日志级别比 CONFIG 低的内容;
返回至
JUL 配置文件详解
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息