본문 바로가기

TroubleShooting/Java

logger info {} 사용

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() 소스를 분석해보면 동작 방식을 알거 같다.