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)