如何解决java记录API,禁用记录到标准输出
| 构造之后,使用标准的Java日志记录API(导入java.util.logging.Logger):Logger l = Logger.getLogger(\"mylogger\");
我已经可以登录了。由于它没有FileHandler,因此不会向磁盘写入任何内容。
l.severe(\"test with no handler\");
它写入(不是全部)日志消息以输出。
如何禁用此功能?
提前致谢
阿戈斯蒂诺
解决方法
如果您不知道Java util日志记录的默认配置,就会出现问题。
建筑事实:
0)每个记录器,无论其名称是什么,都将根记录器作为父级。
默认事实:
1)记录器属性useParentHandlers默认为true
2)默认情况下,根记录器具有一个ConsoleHandler
所以。默认情况下,新记录器还将其日志记录也发送到其父记录(点1),该父记录是根记录器(点0),默认情况下,将它们记录到控制台(点2)。
删除控制台日志很容易,因为:
Logger l0 = Logger.getLogger(\"\");
l0.removeHandler(l0.getHandlers()[0]);
,Java中的标准Logger具有分层结构,默认情况下,子Logger继承其父级的Handler。尝试执行以下操作以禁止使用父处理程序:
l.setUseParentHandlers(false);
,禁用此功能意味着您根本不想记录任何内容?如果是这种情况,则必须将该记录器的级别设置为“无”
例如,如果您正在使用日志记录属性文件,则可以设置:
mylogger.level=NONE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。