이클립스 콘솔 출력을 파일로 어떻게 리디렉션 할 수 있습니까? 저 할 수 있어요:
Run Configuration
->Commons
->Select a file
.System.setOut(PrintStream)
및을 사용하십시오System.setErr(PrintStream)
.
1)의 문제는 콘솔 출력을 하나의 파일 대신 다른 파일에 기록해야한다는 것입니다.
2)의 문제점 System.out.println()
은 예외에 의해 생성 된 콘솔 출력 또는 스택 추적 만 저장한다는 것 입니다. log4j 경고 등과 같은 다른 종류의 출력은 캡처하지 않습니다.
프로그래밍 방식으로 콘솔 출력을 다른 파일로 리디렉션하는 방법은 무엇입니까?
답변
다음으로 실행으로 이동하여 Run Configurations
->를 선택 Common
하고 표준 입력 및 출력에서 파일을 선택할 수도 있습니다.
답변
출력 파일 이름 안에 “변수”를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
/tmp/FetchBlock-${current_date}.txt
current_date :
yyyyMMdd_HHmm 형식으로 현재 시스템 시간을 반환합니다. 선택적 형식을 사용하여 대체 형식을 제공 할 수 있습니다. 인수는 java.util.SimpleDateFormat에 유효한 패턴이어야합니다.
또는 system_property 또는 env_var를 사용하여 동적으로 무언가를 지정할 수도 있습니다 (둘 중 하나를 인수로 지정해야 함)
답변
다음을 수행하여 프로그래밍 방식으로 System.out의 출력을 설정할 수 있습니다.
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
편집하다:
이 솔루션은 기반으로한다는 사실로 인해 PrintStream
, 우리는에 따라의 autoflush을 가능하게 할 수 있지만, 문서 :
autoFlush-부울; true 인 경우 바이트 배열이 작성되거나 println 메소드 중 하나가 호출되거나 개행 문자 또는 바이트 ( ‘\ n’)가 작성 될 때마다 출력 버퍼가 플러시됩니다.
따라서 새 줄이 작성되지 않으면 System.out.flush()
수동으로 기억하십시오 .
(감사합니다 Robert Tupelo-Schneck)
답변
문제를 해결하기 위해 $ {string_prompt} 변수를 사용합니다. 응용 프로그램이 실행될 때 입력 대화 상자를 보여줍니다. 해당 대화 상자에서 날짜 / 시간을 수동으로 설정할 수 있습니다.
답변
다음과 같은 방법으로 System 클래스의 변수를 설정하여이를 수행 할 수 있습니다
System.setOut (new PrintStream (새 FileOutputStream ( “출력 파일 경로”))). 또한 일부 출력이 누락되지 않도록 ‘out'(System.out.close () 또는 System.out.flush ()) 변수를 닫거나 플러시해야합니다.
출처 : http://xmodulo.com/how-to-save-console-output-to-file-in-eclipse.html