Java util logging配置文件中.level后缀在什么场景下为必填项?
java.util.logging 日志配置写法有效性说明
四类写法的生效情况(无后续配置覆盖的前提下)
com.example.level = FINE:可生效,属于包级别的日志级别配置,com.example包及所有子包下的日志器都会继承该级别,包含com.example.MyClass。com.example.* = FINE:不可生效,java.util.logging 原生不支持通配符*匹配规则,该配置会被识别为名称为com.example.*的特殊日志器的属性,不会作用于正常业务类对应的日志器。com.example.MyClass = FINE:不可生效,java.util.logging 的配置键要求遵循「日志器名称.属性名」的格式,缺少属性后缀的配置会被系统直接忽略,不会被识别为级别配置。com.example.MyClass.level = FINE:可生效,属于类级别的精准级别配置,会直接将com.example.MyClass对应的日志器级别设为FINE。
规范写法说明
官方推荐的标准写法为显式带.level后缀的两类写法:
- 包级别全局配置:
{包名}.level = {级别},适配整个包及子包下所有日志器的级别统一设置 - 类级别精准配置:
{全类名}.level = {级别},适配单个类对应日志器的单独级别设置
自动补全.level后缀的问题
java.util.logging 没有自动补全.level后缀的逻辑,所有配置项必须显式指定属性名,缺少后缀的配置会被判定为无效配置直接丢弃,不会被默认识别为级别配置。
内容的提问来源于stack exchange,提问作者lmsurprenant
相关产品推荐
相关产品推荐

