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

时间:2014-10-05 00:05:21

标签: java logging properties configuration

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

    < / LI>
  2. 当我在调用LogManager.readConfiguration(InputStream)后创建FileHandler时,它似乎不使用配置文件中的属性(如下所示)。那是为什么?

  3. 有没有办法在配置文件中指明特定命名的Logger将使用的特定FileHandler配置?防爆。如果我正在创建一个名为“a.bb.ccc”的Logger,并且我希望它使用具有特定限制和格式化程序的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
    

1 个答案:

答案 0 :(得分:0)

  1. 读取配置会创建FileHandler。你不必添加一个。
  2. &#39; package1.package2.package3.SimpleFormatter&#39;必须是公共的,对系统类加载器可见,使用public no arg构造函数,并且没有异常转义构造函数以便安装它。
  3. 使用属性语法不支持它,但您可以使用LogManager类级别文档中描述的config选项。创建一个新类&quot; package.SimpleFileConfig&#39;并让默认构造函数按您希望的方式设置所有内容。然后您的logging.properties将包含一行:config=package.SimpleFileConfig