在构造之后使用标准的java logging API(import java.util.logging.Logger):
Logger l = Logger.getLogger("mylogger");
Run Code Online (Sandbox Code Playgroud)
我已经能够记录一些东西了.由于它没有FileHandler,因此它不会向磁盘写入任何内容.
l.severe("test with no handler");
Run Code Online (Sandbox Code Playgroud)
它将(一些,而不是全部)日志消息写入输出.如何禁用此功能?在此感谢Agostino
如果您不知道java util logging的默认配置,则会出现问题.体系结构事实:0)每个记录器的名称都是根记录器作为父记录器.默认事实:1)默认情况下logger属性useParentHandlers为true 2)根记录器默认具有ConsoleHandler
所以.默认情况下,新记录器还将其日志记录发送到其父记录(点1),即根记录器(点0),默认情况下,将其记录到控制台(点2).
删除控制台日志记录非常简单:
Logger l0 = Logger.getLogger("");
l0.removeHandler(l0.getHandlers()[0]);
Run Code Online (Sandbox Code Playgroud)
Java中的标准记录器采用分层结构,默认情况下子记录器继承其父项的处理程序.尝试此操作以禁止使用父处理程序:
l.setUseParentHandlers(false);
Run Code Online (Sandbox Code Playgroud)