Java 如何使用配置文件创建FileHandler?

Java 如何使用配置文件创建FileHandler?,java,logging,properties,configuration,Java,Logging,Properties,Configuration,在调用LogManager.readConfiguration(InputStream)后创建记录器时,我们是否必须创建一个FileHandler并将其添加到记录器中,或者记录器是否会使用下面的配置文件创建自己的FileHandler 当我在调用LogManager.readConfiguration(InputStream)后创建一个FileHandler时,它似乎没有使用配置文件中的属性(如下所示)。为什么呢 是否有方法指示(在配置文件中)特定命名记录器将使用的特定FileHandler配置

在调用LogManager.readConfiguration(InputStream)后创建记录器时,我们是否必须创建一个FileHandler并将其添加到记录器中,或者记录器是否会使用下面的配置文件创建自己的FileHandler

  • 当我在调用LogManager.readConfiguration(InputStream)后创建一个FileHandler时,它似乎没有使用配置文件中的属性(如下所示)。为什么呢

  • 是否有方法指示(在配置文件中)特定命名记录器将使用的特定FileHandler配置?例如,如果我正在创建一个名为“a.bb.ccc”的记录器,并且我希望它使用具有特定限制和格式化程序的FileHandler,但我希望默认FileHandler使用其他限制和格式化程序,我将如何做到这一点

    handlers = java.util.logging.FileHandler
    
    .level = ALL
    
    # Default
    java.util.logging.FileHandler.level = FINEST
    java.util.logging.FileHandler.formatter = package1.package2.package3.SimpleFormatter
    java.util.logging.FileHandler.limit = 10000
    java.util.logging.FileHandler.count = 7
    java.util.logging.FileHandler.append = true
    
    # package1.package2.class1
    package1.package2.class1.level = FINER
    
  • 读取配置创建文件处理程序。您不必添加一个
  • “package1.package2.package3.SimpleFormatter”必须是公共的,对系统类加载器可见,并带有公共的无参数构造函数,并且没有任何异常从构造函数中转义才能安装
  • 不支持使用properties语法,但可以使用LogManager类级别文档中描述的选项。创建一个新类“package.SimpleFileConfig”,并让默认构造函数按照您想要的方式设置所有内容。然后,logging.properties将包含一行:
    config=package.SimpleFileConfig

  • 1.根据你说的,它会自动创建一个。是因为“handlers=java.util.logging.FileHandler”?2.它不工作,因为我没有使用默认的格式化程序?为什么我不能使用自定义格式化程序?3.我原以为属性文件会使运行时更加灵活,但我想不会。对的2.只要您的类可以从系统类加载器访问,并且是公共的,并且有一个公共的无参数构造函数,它就可以工作。