package jp.terasoluna.fw.logger; import static org.junit.Assert.*; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Locale; import jp.terasoluna.fw.common.LogId; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TLoggerTest { private static BufferedReader logReader; private static final TLogger LOGGER = TLogger.getLogger(TLoggerTest.class); static { try { File f = new File("log/ut.log"); f.createNewFile(); logReader = new BufferedReader(new FileReader(f)); } catch (IOException e) { e.printStackTrace(); } } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { while (logReader.readLine() != null) ; } @Test public void testLog01() throws Exception { LOGGER.log(LogId.TRA001); assertEquals( "[TRACE][TLoggerTest] " + LOGGER.getLogMessage(LogId.TRA001), logReader.readLine()); LOGGER.log(LogId.DEB001); assertEquals( "[DEBUG][TLoggerTest] " + LOGGER.getLogMessage(LogId.DEB001), logReader.readLine()); LOGGER.log(LogId.INF001); assertEquals( "[INFO][TLoggerTest] " + LOGGER.getLogMessage(LogId.INF001), logReader.readLine()); LOGGER.log(LogId.WAR001); assertEquals( "[WARN][TLoggerTest] " + LOGGER.getLogMessage(LogId.WAR001), logReader.readLine()); LOGGER.log(LogId.ERR001); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR001), logReader.readLine()); LOGGER.log(LogId.FAT001); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.FAT001), logReader.readLine()); // FATALログはERRORレベルで出力される。 LOGGER.log("HOGE"); assertEquals("[DEBUG][TLoggerTest] [HOGE] ", logReader.readLine()); } @Test public void testLog02() throws Exception { Exception e = new Exception("hoge"); LOGGER.log(LogId.TRA001, e); assertEquals( "[TRACE][TLoggerTest] " + LOGGER.getLogMessage(LogId.TRA001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log(LogId.DEB001, e); assertEquals( "[DEBUG][TLoggerTest] " + LOGGER.getLogMessage(LogId.DEB001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log(LogId.INF001, e); assertEquals( "[INFO][TLoggerTest] " + LOGGER.getLogMessage(LogId.INF001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log(LogId.WAR001, e); assertEquals( "[WARN][TLoggerTest] " + LOGGER.getLogMessage(LogId.WAR001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log(LogId.ERR001, e); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log(LogId.FAT001, e); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.FAT001), logReader.readLine()); // FATALログはERRORレベルとして出力される。 assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; LOGGER.log("HOGE", e); assertEquals("[DEBUG][TLoggerTest] [HOGE] ", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); while (logReader.readLine() != null) ; } @Test public void testError01() throws Exception { LOGGER.error(LogId.ERR001); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR001), logReader.readLine()); } @Test public void testError02() throws Exception { LOGGER.error(LogId.ERR011, "a", "b"); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR011, "a", "b"), logReader.readLine()); } @Test public void testError03() throws Exception { LOGGER.error(LogId.ERR001, new Exception("hoge")); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testError04() throws Exception { LOGGER.error(LogId.ERR011, new Exception("hoge"), "a", "b"); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR011, "a", "b"), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testError05() throws Exception { LOGGER.error(true, LogId.ERR011, new Exception("hoge"), "a", "b"); assertEquals( "[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.ERR011, "a", "b"), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testError06() throws Exception { LOGGER.error(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[ERROR][TLoggerTest] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testError07() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.error(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[ERROR][FATAL_TEST] a is b", logReader.readLine()); // FATAL指定のloggerはDEBUGレベルとして出力される。 assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testError08() throws Exception { LOGGER.error(new StringBuilder("hoge")); assertEquals("[ERROR][TLoggerTest] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testError09() throws Exception { LOGGER.error(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[ERROR][TLoggerTest] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testFatal01() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.fatal(LogId.FAT010); assertEquals( "[ERROR][FATAL_TEST] " + logger.getLogMessage(LogId.FAT010), logReader.readLine()); } @Test public void testFatal02() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.fatal(false, "{0} is {1}", "a", "b"); assertEquals("[ERROR][FATAL_TEST] a is b", logReader.readLine()); } @Test public void testFatal03() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.fatal(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[ERROR][FATAL_TEST] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testFatal04() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.fatal(new StringBuilder("hoge")); assertEquals("[ERROR][FATAL_TEST] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testFatal05() throws Exception { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.fatal(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[ERROR][FATAL_TEST] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testFatal06() throws Exception { LOGGER.fatal(LogId.FAT001, new Exception("hoge")); assertEquals("[ERROR][TLoggerTest] " + LOGGER.getLogMessage(LogId.FAT001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testWarn01() throws Exception { { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.warn(LogId.WAR010); assertEquals( "[WARN][WARN_TEST] " + logger.getLogMessage(LogId.WAR010), logReader.readLine()); } { TLogger logger = TLogger.getLogger("FATAL_TEST"); logger.warn(LogId.WAR010); assertEquals("[WARN][FATAL_TEST] [WAR010] ワーンメッセージ10", logReader.readLine()); // FATAL 指定のloggerはDEBUGレベルとして解釈されるため、FATAL_TESTカテゴリでも出力される。 } } @Test public void testWarn02() throws Exception { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.warn(false, "{0} is {1}", "a", "b"); assertEquals("[WARN][WARN_TEST] a is b", logReader.readLine()); } @Test public void testWarn03() throws Exception { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.warn(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[WARN][WARN_TEST] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testWarn04() throws Exception { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.warn(new StringBuilder("hoge")); assertEquals("[WARN][WARN_TEST] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testWarn05() throws Exception { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.warn(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[WARN][WARN_TEST] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testWarn06() throws Exception { LOGGER.warn(LogId.WAR001, new Exception("hoge")); assertEquals("[WARN][TLoggerTest] " + LOGGER.getLogMessage(LogId.WAR001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testInfo01() throws Exception { { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.info(LogId.INF010); assertEquals( "[INFO][INFO_TEST] " + logger.getLogMessage(LogId.INF010), logReader.readLine()); } { TLogger logger = TLogger.getLogger("WARN_TEST"); logger.info(LogId.INF010); assertNull(logReader.readLine()); // 出力されない } } @Test public void testInfo02() throws Exception { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.info(false, "{0} is {1}", "a", "b"); assertEquals("[INFO][INFO_TEST] a is b", logReader.readLine()); } @Test public void testInfo03() throws Exception { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.info(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[INFO][INFO_TEST] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testInfo04() throws Exception { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.info(new StringBuilder("hoge")); assertEquals("[INFO][INFO_TEST] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testInfo05() throws Exception { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.info(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[INFO][INFO_TEST] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testInfo06() throws Exception { LOGGER.info(LogId.INF001, new Exception("hoge")); assertEquals("[INFO][TLoggerTest] " + LOGGER.getLogMessage(LogId.INF001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testDebug01() throws Exception { { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.debug(LogId.DEB010); assertEquals( "[DEBUG][DEBUG_TEST] " + logger.getLogMessage(LogId.DEB010), logReader.readLine()); } { TLogger logger = TLogger.getLogger("INFO_TEST"); logger.debug(LogId.DEB010); assertNull(logReader.readLine()); // 出力されない } } @Test public void testDebug02() throws Exception { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.debug(false, "{0} is {1}", "a", "b"); assertEquals("[DEBUG][DEBUG_TEST] a is b", logReader.readLine()); } @Test public void testDebug03() throws Exception { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.debug(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[DEBUG][DEBUG_TEST] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testDebug04() throws Exception { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.debug(new StringBuilder("hoge")); assertEquals("[DEBUG][DEBUG_TEST] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testDebug05() throws Exception { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.debug(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[DEBUG][DEBUG_TEST] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testDebug06() throws Exception { LOGGER.debug(LogId.DEB001, new Exception("hoge")); assertEquals("[DEBUG][TLoggerTest] " + LOGGER.getLogMessage(LogId.DEB001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testTrace01() throws Exception { { TLogger logger = TLogger.getLogger("TRACE_TEST"); logger.trace(LogId.TRA010); assertEquals( "[TRACE][TRACE_TEST] " + logger.getLogMessage(LogId.TRA010), logReader.readLine()); } { TLogger logger = TLogger.getLogger("DEBUG_TEST"); logger.trace(LogId.TRA010); assertNull(logReader.readLine()); // 出力されない } } @Test public void testTrace02() throws Exception { TLogger logger = TLogger.getLogger("TRACE_TEST"); logger.trace(false, "{0} is {1}", "a", "b"); assertEquals("[TRACE][TRACE_TEST] a is b", logReader.readLine()); } @Test public void testTrace03() throws Exception { TLogger logger = TLogger.getLogger("TRACE_TEST"); logger.trace(false, "{0} is {1}", new Exception("hoge"), "a", "b"); assertEquals("[TRACE][TRACE_TEST] a is b", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testTrace04() throws Exception { TLogger logger = TLogger.getLogger("TRACE_TEST"); logger.trace(new StringBuilder("hoge")); assertEquals("[TRACE][TRACE_TEST] hoge", logReader.readLine()); } @SuppressWarnings("deprecation") @Test public void testTrace05() throws Exception { TLogger logger = TLogger.getLogger("TRACE_TEST"); logger.trace(new StringBuilder("hoge"), new Exception("hoge")); assertEquals("[TRACE][TRACE_TEST] hoge", logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testTrace06() throws Exception { LOGGER.trace(LogId.TRA001, new Exception("hoge")); assertEquals("[TRACE][TLoggerTest] " + LOGGER.getLogMessage(LogId.TRA001), logReader.readLine()); assertEquals("java.lang.Exception: hoge", logReader.readLine()); } @Test public void testCreateMessage01() { assertEquals("a b", LOGGER.createMessage(false, "{0} {1}", "a", "b")); TLogger.setLocale(Locale.ENGLISH); assertEquals("[ERR001] error1", LOGGER.createMessage(true, LogId.ERR001)); TLogger.setLocale(Locale.getDefault()); assertEquals("[ERR001] エラーメッセージ1", LOGGER.createMessage(true, LogId.ERR001)); } @Test public void testGetLogMessage01() { assertEquals("[ERR001] エラーメッセージ1", LOGGER.getLogMessage(LogId.ERR001)); TLogger.setLocale(Locale.ENGLISH); assertEquals("[ERR001] error1", LOGGER.getLogMessage(LogId.ERR001)); TLogger.setLocale(Locale.getDefault()); } }