【问题标题】:java.util.logging: how to set level by logger package (or prefix)?java.util.logging:如何通过记录器包(或前缀)设置级别?
【发布时间】:2010-10-13 05:07:37
【问题描述】:

我的应用程序使用了许多库,并且我使用 java.util.logging 进行日志记录。我希望能够通过执行以下操作为每个库设置不同的日志记录级别:

org.datanucleus.*.level = WARNING
com.google.apphosting.*.level = WARNING
com.myapp.*.level = FINE

有可能吗?

【问题讨论】:

    标签: logging package prefix java.util.logging log-level


    【解决方案1】:

    您不应该使用“*”。 一个示例 logging.properties 可以是:

    handlers=java.util.logging.ConsoleHandler
    .level=ALL
    
    java.util.logging.ConsoleHandler.level = ALL
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
    
    org.datanucleus.level=WARNING
    org.datanucleus.handler=java.util.logging.ConsoleHandler
    
    com.myapp.level=FINE
    com.myapp.handler=java.util.logging.ConsoleHandler
    

    如果所有“组织”级别都应该记录为警告,那么

    org.level=WARNING
    org.handler=java.util.logging.ConsoleHandler
    

    【讨论】:

      【解决方案2】:

      我能够让它像这样工作:

      handlers= java.util.logging.ConsoleHandler
      
      .level= INFO
      
      java.util.logging.ConsoleHandler.level = ALL
      java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
      
      com.myapp.level = ALL
      com.myapp.handler=java.util.logging.ConsoleHandler
      

      【讨论】:

        【解决方案3】:

        如果只使用 logging.properties 来控制日志记录会很好:

        org = FINE
        com = SEVERE
        

        不幸的是,相应的日志必须已经实际创建。更改您的 conf 文件对您不起作用。自己添加记录器,它会工作:

        private static final Logger ORG_ROOT_LOGGER = Logger.getLogger("org");
        private static final Logger COM_ROOT_LOGGER = Logger.getLogger("com");
        

        应用程序中的嵌套记录器的工作方式相同:

        # perhaps in the main entry point for your application?
        private static final Logger APP_ROOT_LOGGER = Logger.getLogger("com.myapp");
        
        # in each package or class you want to have separately controlled loggers
        private static final Logger LOG = Logger.getLogger(HelloWorldApp.class.getName());
        
        # in logging.properties
        com.myapp.level = FINE  # sufficient to make all your loggers log as FINE
        com.myapp.HelloWorldApp.level = SEVERE  # turn off msgs from that particularly chatty app
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多