我試圖提供一個記錄器文件輸出,我看到輸出文件中只顯示了一行 - 只有在 try catch 塊內的那一行,其他的只是在控制臺上附上我的測試代碼public class Something {Logger logger = Logger.getLogger("");FileHandler fh;@BeforeEachpublic void wallad() { System.out.println("hello");}@AfterEachpublic void asddf() { System.out.println("pizza");}@Tag("test")@Testpublic void some() { try { fh = new FileHandler("C:\\MyLogFile.txt"); logger.addHandler(fh); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); logger.log(Level.SEVERE, "severe");------->only these will show at the output file } catch (Exception e) { e.printStackTrace(); } logger = Logger.getLogger(Logger.class.getName()); logger.setLevel(Level.FINEST); ConsoleHandler handler = new ConsoleHandler(); handler.setLevel(Level.ALL); logger.addHandler(handler); logger.setUseParentHandlers(false); System.out.println("test1"); logger.log(Level.WARNING, "warning"); System.out.println("test2"); logger.log(Level.INFO, "information"); System.out.println("test3"); logger.log(Level.SEVERE, "severe"); System.out.println("test4"); logger.log(Level.FINEST, "finest"); System.out.println("test5"); logger.log(Level.FINE, "fine"); System.out.println("test6"); logger.log(Level.FINER, "finer"); System.out.println("test7"); logger.log(Level.FINEST, "finest");}}我怎樣才能取出所有的日志文件?它不可能在 try catch 塊內
2 回答

智慧大石
TA貢獻1946條經驗 獲得超3個贊
通過將處理程序設置為 ConsoleHandler,您不再寫入文件,
ConsoleHandler handler = new ConsoleHandler();
刪除此行以繼續寫入您的文件
logger = Logger.getLogger(Logger.class.getName());

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
你正在創造一個好的新ConsoleHandler
的ConsoleHandler handler = new ConsoleHandler();
。您還調用logger.addHandler(handler)
which 會將其添加到ConsoleHandler
記錄器中。
如果不是因為您剛剛重新實例化了變量,這也會有:FileHandler
logger
logger = Logger.getLogger(Logger.class.getName());
只需刪除此行,您logger
將同時擁有FileHandler
和ConsoleHandler
。
添加回答
舉報
0/150
提交
取消