Java 프로그램콘솔 출력을 여러 파일로 리다이렉트하려면 어떻게 해야 합니까?
이클립스 콘솔 출력을 파일로 리디렉션하려면 어떻게 해야 합니까?나는 다음을 할 수 있다.
Run Configuration
->Commons
->Select a file
.- 사용하다
System.setOut(PrintStream)
그리고.System.setErr(PrintStream)
.
1)의 문제는 콘솔 출력을 하나의 파일이 아닌 다른 파일에 기록해야 한다는 것입니다.
2)의 문제는 다음과 같이 생성된 콘솔 출력만 저장한다는 것입니다.System.out.println()
또는 예외가 발생한 스택 트레이스.log4j 경고 등 다른 종류의 출력은 캡처하지 않습니다.
콘솔 출력을 다른 파일로 프로그래밍 방식으로 리디렉션하려면 어떻게 해야 합니까?
as 실행 및 선택Run Configurations
->Common
[ Standard Input and Output ](표준 입출력)에서 [File](파일)을 선택할 수도 있습니다.
출력 파일명에 「변수」를 사용할 수 있습니다.다음은 예를 제시하겠습니다.
/tmp/FetchBlock-${current_date}.txt
current_date:
yyyy 형식으로 현재 시스템 시간을 반환합니다.MMdd_HHMM.선택적 인수를 사용하여 대체 형식을 제공할 수 있습니다.인수는 java.util의 유효한 패턴이어야 합니다.SimpleDateFormat.
또는 system_property 또는 env_var를 사용하여 다이내믹한 것을 지정할 수도 있습니다(둘 중 하나를 인수로 지정해야 합니다).
System의 출력을 설정할 수 있습니다.다음을 수행하여 프로그래밍 방식으로 출력합니다.
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
편집:
이 솔루션의 기반이 되는 것은PrintStream
, autoFlush 를 유효하게 할 수 있습니다만, docs 에 의하면 다음과 같습니다.
자동 플러시 - 부울입니다.참일 경우 출력 버퍼는 바이트 배열이 기록되거나 println 메서드 중 하나가 호출되거나 줄 바꿈 문자 또는 바이트('\n')가 기록될 때마다 플러시됩니다.
새 행이 작성되지 않은 경우 잊지 말고System.out.flush()
수동으로 조작할 수 있습니다.
(Robert Tupelo-Schneck 감사합니다)
문제를 해결하기 위해 ${string_prompt} 변수를 사용합니다.응용 프로그램이 실행될 때 입력 대화 상자가 표시됩니다.그 대화 상자에서 수동으로 날짜/시간을 설정할 수 있습니다.
시스템 클래스의 변수를 다음과 같이 설정함으로써 이를 수행할 수 있습니다.
System.setOut (new PrintStream (new FileOutputStream("출력 파일 경로"))).또한 'Out'(시스템)을 닫거나 플러시해야 합니다.out.close() 또는 System.out.flush() 변수를 지정하면 출력 누락이 발생하지 않습니다.
출처 : http://xmodulo.com/how-to-save-console-output-to-file-in-eclipse.html
언급URL : https://stackoverflow.com/questions/5714053/how-can-we-redirect-a-java-program-console-output-to-multiple-files
'it-source' 카테고리의 다른 글
행을 MySQL 데이터베이스에 삽입하는 가장 효율적인 방법 (0) | 2022.11.29 |
---|---|
그룹 기준과 함께 중위수 사용 (0) | 2022.11.29 |
Java 8 Itable.ForEach()와 foreach 루프 (0) | 2022.11.29 |
기존 데이터에 대해 MySQL에서 GUID를 생성하시겠습니까? (0) | 2022.11.29 |
MySQL에서 로그 파일을 보는 방법 (0) | 2022.11.29 |