尽管我已经配置了处理程序以将日志写入文件结构,但是在运行程序时我在控制台栏上看到了日志,但是我如何伪装日志,使其只写在文件上而不暴露在控制台上。 / p>
static {
System.setProperty("java.util.logging.config.file",
"log.properties");
//must initialize loggers after setting above property
}
static Logger logger = Logger.getLogger("com.debugz");
public static void main(String[] args) {
try {
FileHandler h = new FileHandler("%h/file_%g.log",1,4);
h.setFormatter(new SimpleFormatter());
logger.addHandler(h);
logger.log(Level.INFO,"Hello");
}
catch (Exception error){
System.out.println("Error : "+error.getMessage());
}
}
答案 0 :(得分:0)
您可以尝试logger.setUseParentHandlers(false);
void java.util.logging.Logger.setUseParentHandlers(boolean useParentHandlers)
指定此记录器是否应将其输出发送到其父记录器。这意味着任何LogRecords也将递归地沿命名空间写入父级的处理程序,甚至可能写入父级的Handler。
参数:useParentHandlers如果将输出发送到记录器的父级,则为true。
如果已将ConsoleHandler明确添加到记录器中,则上述内容将不适用于您的用例。 logger.addHandler(new ConsoleHandler());
,在这种情况下,您可以根据需要通过logger.removeHandler(<handlerToBeRemoved>)
希望有帮助!干杯