Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java util logger:自定义格式化程序仅适用于某些级别_Java_Logging - Fatal编程技术网

Java util logger:自定义格式化程序仅适用于某些级别

Java util logger:自定义格式化程序仅适用于某些级别,java,logging,Java,Logging,我为java.util记录器制作了一个自定义格式化程序,实现如下 logger = Logger.getAnonymousLogger(); logger.setUseParentHandlers(false); sb = new StringBuffer(); try { Handler handler = new FileHandler("xx.log"); handler.setFormatter(new CustomFormatter()); logger.addHandle

我为java.util记录器制作了一个自定义格式化程序,实现如下

logger = Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
sb = new StringBuffer();
try {
  Handler handler = new FileHandler("xx.log");
  handler.setFormatter(new CustomFormatter());
  logger.addHandler(handler);
} catch (IOException e) {
  e.printStackTrace();
}

 private class CustomFormatter extends Formatter {
    @Override
    public String format(LogRecord record) {
      String msg = record.getMessage();
      sb.append(msg);
      System.out.print(sb.toString());
      return sb.toString();
    }
  }
运行以下代码:

logger.finest(msg);
logger.finer(msg);
logger.fine(msg);
logger.config(msg);
logger.info(msg);
logger.warning(msg);
logger.severe(msg);
logger.log(new LogRecord(Level.FINE, msg));   
仅限信息、警告和严重工作。其他方法运行,但不向控制台返回任何内容,也不向日志文件写入任何内容。我需要实现至少4个日志级别,但只有3个工作


日志、配置、精细、精细、精细发生了什么变化?如何让他们使用我的格式化程序?或者如何将级别传递给格式化程序?

您可以使用设置日志记录的
级别

设置日志级别,指定将记录哪些消息级别 这个记录器低于此值的消息级别将被丢弃

在您的情况下,由于您对所有级别都感兴趣,它将是:

logger.setLevel(Level.ALL);

您是否可以尝试添加
logger.setLevel(Level.ALL)?可能是java.util.logging有一个默认为Level.INFO的根记录器。请参阅此处,它已修复!!0否决票—不必在记录器和处理程序中设置日志记录级别吗?