인프런 커뮤니티 질문&답변

Tai Sun Park님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

컨테이너에 등록된 모든 빈 조회

System.out.println 하여 출력한 결과가 안보이는 분들!

작성

·

377

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

file로 redirection 해보세요.
프로젝트 디렉토리에 "test_output.txt" 파일명으로 생성됩니다.

  try {

      PrintStream printStream = new PrintStream(new FileOutputStream(new File("test_output.txt")));
      System.setOut(printStream);

      String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
      for (String beanDefinitionName : beanDefinitionNames) {
        Object bean = applicationContext.getBean(beanDefinitionName);
        System.out.println(beanDefinitionName + " : " + bean);
      }

    } catch (Exception e) {
      e.printStackTrace();
    }

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Tai Sun Park님의 질문은 강의 내용과 관련된 질문으로 보이며, 인프런의 질문 게시판이나 자주 하는 질문에 없는 내용임을 확인하였습니다. 질문 잘하기 메뉴얼 역시 읽어보신 것 같습니다.

주신 코드를 통해 System.out.println으로 콘솔이 아닌 파일에 출력하는 것과 관련하여 도움이 필요하신 것 같습니다. 코드는 PrintStream을 사용하여 콘솔 출력을 test_output.txt 파일로 리다이렉션하는 방법을 보여줍니다. 이 방법을 사용하면 applicationContext에서 가져온 모든 빈의 이름과 해당 빈 객체가 test_output.txt 파일에 기록됩니다. 문제가 발생했다면 파일 생성 경로 또는 파일 쓰기 권한을 확인해 보세요. 프로젝트의 루트 디렉토리에 파일이 생성되어야 합니다. 추가적으로 예외가 발생하면 catch 블록에서 예외 스택 트레이스를 출력하여 문제의 원인을 파악할 수 있습니다.

만약 기대한대로 파일에 로그가 기록되지 않는 경우, 다음 사항들을 확인해 보시길 권장합니다:

  1. 파일 경로가 올바른지 확인하세요. 상대 경로를 사용할 경우 프로젝트 루트 디렉토리를 기준으로 합니다.
  2. 파일 쓰기 권한이 있는지 검토해 보세요.
  3. 코드 실행 후 생성된 파일을 찾을 때 프로젝트 디렉토리를 꼭 체크해보세요.

혹시 다른 문제가 있거나 추가 질문이 있으시면, 언제든 질문해주시기 바랍니다.