Engineering/Java
logger info {} 사용
부스 boos
2020. 8. 6. 14:21
728x90
레거시 코드를 확인하다가 특이한 코드를 발견해서 기록 차원에서 남겨 본다.
@Test
public void logTest() {
Map<String, String> map = new HashMap<>();
map.put("key1", "data1");
map.put("key2", "data2");
map.put("key3", "data3");
logger.info("map={}, secondData={}", new Object[]{map, "thisisseconddata"});
// Output :
// map={key1=data1, key2=data2, key3=data3}, secondData=thisisseconddata
logger.info("map={}, secondData={}", map, "thisisseconddata");
// Output :
// map={key1=data1, key2=data2, key3=data3}, secondData=thisisseconddata
System.out.println("map=" + new Object[]{map, "thisisseconddata"});
// Output :
// map=[Ljava.lang.Object;@2dcd168a
}
첫번째 logger.info() 에서는 new Object 로 배열을 만들어서 map, String 객체를 출력하고 있다. 두번째 info() 와 출력되는거랑 차이가 전혀 없다. info() 소스를 분석해보면 동작 방식을 알거 같다.