В целях ведения журнала я создал метод logTitle(), который выводит имя вызывающего метода для наших тестов TestNG. Пример кода ниже.
@Test
public void test1() throws Exception {
method1();
}
public static void method1() throws Exception {
Utils.logTitle(2);
}
...
public static void logTitle(Integer level) throws Exception {
// Gets calling method name
String method = Thread.currentThread().getStackTrace()[2].getMethodName();
// This would get current method name
switch (level) {
case 1:
logger.info("=======================================================");
logger.info(method);
logger.info("=======================================================");
break;
case 2:
logger.info("------------------------------------");
logger.info(method);
logger.info("------------------------------------");
break;
case 3:
logger.info("---------------------");
logger.info(method);
logger.info("---------------------");
break;
case 4:
logger.info("--------- " + method + " ------------");
break;
default:
logger.info(method);
}
}
Проблема в том, что я получаю разные результаты для logTitle() на двух разных машинах.
Каждый ноутбук возвращается правильно:
2016-06-20 14:22:06 INFO - ------------------------------------
2016-06-20 14:22:06 INFO - method1
2016-06-20 14:22:06 INFO - ------------------------------------
Наш un unix box возвращает по-разному:
2016-06-20 14:42:26 INFO - ------------------------------------
2016-06-20 14:42:26 INFO - logTitle
2016-06-20 14:42:26 INFO - ------------------------------------
Это работает правильно на всех остальных ноутбуках, а не на блоке dev unix. Я думаю, что в блоке dev unix используется версия Java для Java, в то время как все остальные используют Oracle версию Java, но не уверены, является ли это виновником или нет.
Любые идеи?