📜  Java中的 Logger setFilter() 方法及示例

📅  最后修改于: 2022-05-13 01:54:41.849000             🧑  作者: Mango

Java中的 Logger setFilter() 方法及示例

Logger类的setFilter()方法用于设置过滤器以控制此 Logger 上的输出。过滤器作为参数传递。过滤器对于过滤掉日志消息很有用。可以说过滤器决定了消息是否被记录。过滤器由Java接口Java.util.logging.Filter 表示。在通过初始“级别”检查后,Logger 将调用此过滤器来检查是否真的应该发布日志记录。

句法:

public void setFilter(Filter newFilter)
               throws SecurityException

参数:此方法接受一个参数newFilter ,它表示一个过滤器对象。

返回值:此方法不返回任何内容。

异常:如果安全管理器存在,此记录器不是匿名的,并且调用者没有 LoggingPermission(“控制”),则此方法抛出SecurityException

下面的程序说明了 setFilter() 方法:
方案一:

// Java program to demonstrate
// Logger.setFilter() method
  
import java.util.logging.*;
import java.io.IOException;
  
public class GFG {
  
    public static void main(String[] args)
        throws SecurityException, IOException
    {
  
        // Create a logger
        Logger logger
            = Logger.getLogger(GFG.class.getName());
  
        // set a new filter
        logger.setFilter(new MyFilter());
  
        // check filter is null or not by printing
        System.out.println("Filter = "
                           + logger.getFilter());
    }
}
class MyFilter implements Filter {
    public boolean isLoggable(LogRecord record)
    {
        return false;
    }
}

输出:
在 Eclipse 的控制台上打印的输出如下所示 -

方案二:

// Java program to demonstrate
// Logger.setFilter() method
  
import java.util.logging.*;
import java.io.IOException;
  
public class GFG {
  
    public static void main(String[] args)
        throws SecurityException, IOException
    {
  
        // Create a logger
        Logger logger
            = Logger.getLogger(
                GFG.class.getName());
  
        // Set a new filter
        logger.setFilter(new Filter() {
            @Override
            public boolean isLoggable(LogRecord record)
            {
                return true;
            }
        });
  
        // Check filter is null
        // or not by printing
        System.out.println("Filter = "
                           + logger.getFilter());
    }
}

输出:
控制台输出上打印的输出如下所示 -

参考资料: https: Java Java.util.logging.Filter)