/** * Test that no unexpected Exceptions occur if {@link FileLogger#printLog(LogLevel, String, * String)} is called after {@link FileLogger#closeLog()} */ public void testCloseLog() throws Exception { FileLogger logger = new FileLogger(); logger.init(); // test the package-private methods to capture any exceptions that occur logger.doCloseLog(); logger.writeToLog("test2"); }
/** * Test behavior when {@link FileLogger#getLog()} is called after {@link FileLogger#closeLog()}. */ public void testGetLog_afterClose() throws Exception { FileLogger logger = new FileLogger(); logger.init(); logger.closeLog(); // expect this to be silently handled logger.getLog(); }
@Test public void testStopwatch() throws Exception { String lcFileName = "./logs/" + Java.getCallingMethodName(false, 0); File loFile = new File(lcFileName + ".log"); loFile.delete(); String lcMessage = "This is the message that is to be logged"; FileLogger loLogger = new FileLogger(3, 10, loFile); for (int i = 0; i < 10; i++) { loLogger.log(lcMessage); } Thread.sleep(1500); assertTrue(loFile.exists()); }
@Test public void testLog() throws Exception { String lcFileName = "./logs/" + Java.getCallingMethodName(false, 0); new File(lcFileName + ".log").delete(); for (int i = 0; i < 3; i++) { new File(lcFileName + "_" + (i + 1) + ".log").delete(); } String lcMessage = "This is the message that is to be logged"; FileLogger loLogger = new FileLogger(3, 10, new File(lcFileName + ".log")); for (int i = 0; i < 4; i++) { loLogger.log(lcMessage + " i = " + i); // Force Flush loLogger.flush(); } loLogger.log("final write"); loLogger.flush(); // Test the file contents BufferedReader loReader = new BufferedReader(new FileReader(lcFileName + ".log")); String lcLine = loReader.readLine(); assertTrue(lcLine.contains("final write")); loReader.close(); for (int i = 0; i < 3; i++) { loReader = new BufferedReader(new FileReader(lcFileName + "_" + (i + 1) + ".log")); lcLine = loReader.readLine(); if (i == 0) { assertTrue(lcLine.contains("This is the message that is to be logged" + " i = " + 3)); } else { assertTrue(lcLine.contains("This is the message that is to be logged" + " i = " + i)); } loReader.close(); } }
private static FileLogger getFileLogger() { if (fileLogger == null) { fileLogger = new FileLogger("log.txt"); } File file = fileLogger.getFile(); if (file.length() > (1024 * 1000)) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss"); Date now = Calendar.getInstance().getTime(); String fileName = String.format("log%s.txt", dateFormat.format(now)); file.renameTo(new File(fileName)); fileLogger = new FileLogger("log.txt"); } return fileLogger; }
/** * Test logging to a logger. * * @throws ConfigurationException if unable to create log file * @throws IOException if unable to read from the file * @throws SecurityException if unable to delete the log file on cleanup */ public void testLogToLogger() throws ConfigurationException, IOException, SecurityException { String Text1 = "The quick brown fox jumps over the lazy doggie."; String Text2 = "Betty Botter bought some butter, 'But,' she said, 'this butter's bitter.'"; String Text3 = "Wolf zombies quickly spot the jinxed grave."; BufferedReader logFileReader = null; FileLogger logger = new FileLogger(); InputStreamSource logSource = null; try { logger.init(); // Write 3 lines of text to the log... logger.printLog(LogLevel.INFO, LOG_TAG, Text1); String expectedText1 = LogUtil.getLogFormatString(LogLevel.INFO, LOG_TAG, Text1).trim(); logger.printLog(LogLevel.VERBOSE, LOG_TAG, Text2); String expectedText2 = LogUtil.getLogFormatString(LogLevel.VERBOSE, LOG_TAG, Text2).trim(); logger.printLog(LogLevel.ASSERT, LOG_TAG, Text3); String expectedText3 = LogUtil.getLogFormatString(LogLevel.ASSERT, LOG_TAG, Text3).trim(); // Verify the 3 lines we logged logSource = logger.getLog(); logFileReader = new BufferedReader(new InputStreamReader(logSource.createInputStream())); String actualLogString = logFileReader.readLine().trim(); assertTrue(actualLogString.equals(expectedText1)); actualLogString = logFileReader.readLine().trim(); assertTrue(actualLogString.equals(expectedText2)); actualLogString = logFileReader.readLine().trim(); assertTrue(actualLogString.equals(expectedText3)); } finally { if (logFileReader != null) { logFileReader.close(); } if (logSource != null) { logSource.cancel(); } logger.closeLog(); } }
@Test public void readsMessageFromFile() { FileLogger logger = new FileLogger(pathToEmptyFile); logger.log("Some content"); assertEquals("Some content, ", logger.getLogs()); }
@Test public void writesMessageToFile() throws IOException { FileLogger logger = new FileLogger(pathToEmptyFile); logger.log("message"); assertEquals("message, ", new String(Files.readAllBytes(Paths.get(pathToEmptyFile)))); }
/** * Test behavior when {@link FileLogger#getLog()} is called when {@link FileLogger#init()} has not * been called. */ public void testGetLog_NoInit() { FileLogger logger = new FileLogger(); // expect this to be silently handled logger.getLog(); }
private void log(String msg, FileLogger flogger) { String result = getClass().getName() + ": " + msg; System.out.println(result); if (flogger != null) flogger.log(msg); }