使用标准的java logging API(import java.util.logging.Logger),构造完成后:
Logger l = Logger.getLogger("mylogger");
我已经能够记录一些东西了。由于它没有FileHandler,因此它不会向磁盘写入任何内容。
l.severe("test with no handler");
它将(某些,而不是全部)日志消息写入输出。 如何禁用此功能? 提前致谢 阿戈斯蒂诺
答案 0 :(得分:8)
如果您不知道java util logging的默认配置,则会出现问题。 建筑事实: 0)每个记录器的名称都是根记录器作为父记录器。 默认事实: 1)默认情况下,logger属性useParentHandlers为true 2)根记录器默认具有ConsoleHandler
因此。默认情况下,新的记录器也将其日志记录发送到他的父记录(点1),即根记录器(点0),默认情况下,将它们记录到控制台(点2)。
删除控制台日志记录非常简单:
Logger l0 = Logger.getLogger("");
l0.removeHandler(l0.getHandlers()[0]);
答案 1 :(得分:7)
Java中的标准记录器采用分层结构,默认情况下子记录器继承其父项的处理程序。尝试这样做可以禁止使用父处理程序:
l.setUseParentHandlers(false);
答案 2 :(得分:0)
通过禁用此功能,您的意思是您根本不想记录任何内容?如果是这种情况,则必须将该记录器的级别设置为NONE
例如,如果您使用的是日志属性文件,则可以设置:
mylogger.level=NONE