콘솔 응용 프로그램을 실행하는 동안 콘솔 창에 통계를 보냅니다. 콘솔의 내용을 텍스트 파일로 주기적으로 플러시하고 싶을 때나 프로그램이 닫히는 경우에도 console.out.writeline()이 작동 할 것이라고 생각했지만 값을 생성하지는 않습니다. 콘솔 창에 쓰여지는 모든 것을 추적 할 수 없으므로 기본적으로 6 시간마다 텍스트 파일에 표시된 모든 내용을 작성하고 싶습니다. 이것이 가능한지 알고 싶을뿐입니다. 미리 감사드립니다.콘솔 창 내용을 streamwriter 텍스트 파일로 플러시
답변
모든 것을 고려하면 콘솔과 파일에 기록되는 것을 사용하는 것이 좋습니다. 따라서 Console.WriteLine
을 호출하는 대신 Logger.WriteLine
을 호출하고 둘 다에 씁니다.
콘솔에서 읽고 파일에 쓰지 만 약간 어렵고 완벽하지는 않습니다. 콘솔 화면 버퍼는 너무 많이 저장할 수 있습니다. 많은 양의 데이터를 출력하는 경우 일부 데이터가 버퍼에서 푸시됩니다.
콘솔 창의 속성을 변경하여 화면 버퍼의 크기를 설정할 수 있습니다.
콘솔에서 데이터를 읽으려면 콘솔 화면 버퍼를 읽어야합니다. .NET Console
클래스는 이에 대한 액세스를 제공하지 않습니다. 결국 Windows API 함수를 호출해야합니다.
.NET에서 Console API을 사용하여 일련의 기사를 작성한 지 몇 년 전에 코드를 개발했습니다. 불행히도 이러한 기사를 게시 한 사이트는 더 이상 온라인 상태가 아닙니다. 그러나이 코드는 http://www.mischel.com/pubs/consoledotnet.zip에 있습니다. 콘솔의 내용을 얻기 위해 그 코드를 사용하려면
, 당신은 다음을 수행합니다 :
당신에게ConsoleCharInfo
구조의 2 차원 배열을 반환합니다
Get the active console screen buffer by calling JConsole.GetActiveScreenBuffer
Call GetScreenBufferInfo to get the size of the screen buffer
Call ReadBlock to read as much of the buffer as you want
. 그런 다음 그것을 통해 원하는 캐릭터를 얻을 수 있습니다.
콘솔에 출력 된 모든 항목을 가져올 필요는 없습니다. 오히려 현재 화면 버퍼에있는 모든 것을 가져옵니다. 응용 프로그램이 화면 버퍼에 맞지 않는 것보다 많은 것을 쓴다면 스크롤 한 정보를 얻지 못할 것입니다.
고맙습니다. 매우 유익한. 필자는 일반적으로 병렬 로깅 옵션을 고려해 보았습니다. 그러나이 경우에는 작성한 타이머 문제가 6 시간 후에 텍스트 로그 파일에 기록되어야합니다. 그래서 콘솔 창에 설정된 형식과 커서 위치의 데이터가 표시되므로 어떤 지점에서라도 '플러시'할 수 있다고 생각했습니다. 그러나 당신이 그렇게 쉽게 지적하지 않습니다. 감사. 샘플 코드를 사용하여 더 나은 방법을 테스트합니다. – vbNewbie
@vbNewbie : Hans Passant가 자신의 의견에 언급 한 기술을 사용하는 것이 좋습니다. –
그게 좋은 옵션이지만 내 생각에 나는 콘솔 출력이 매초 만들어진 때마다 로그 싶지 않아요. 나는 단지 6 시간마다 파일에 기록을하고 타이머로 기록하고 통계 변수를 추적하고 싶습니다. – vbNewbie
- 1. IIS에서 콘솔 출력을 파일로 저장합니다.
- 2. JTable 내용을 텍스트 파일로 저장
- 3. 텍스트 파일 내용을 다른 텍스트 파일로 복사
- 4. ExtJS 3 텍스트 내용을 텍스트 파일로 내보내기
- 5. 텍스트 파일 내용을 텍스트 파일로 저장하려고 시도했습니다.
- 6. \ n 표시없이 텍스트 내용을 텍스트 파일로 내보내기
- 7. .NET에서 StreamWriter 사용
- 8. 윈도우 내용을 텍스트 파일로 가져 오기
- 9. 텍스트 파일의 내용을 텍스트 파일로 내보내기 Visual Studio C#
- 10. 우리의 작업을 콘솔 창에 텍스트 파일로 저장하는 방법은 무엇입니까?
- 11. C#에서 콘솔 응용 프로그램을 텍스트 파일로 계속 출력하는 방법
- 12. Eclipse 콘솔 뷰 출력을 텍스트 파일로 내보내기
- 13. 전체 콘솔 출력을 텍스트 파일로 출력
- 14. 콘솔 창을 텍스트 파일로 출력, java
- 15. 콘솔 콘솔 출력을 C++ 파일로
- 16. IAR IDE 디스 어셈블리 창 내용을 파일로 저장하는 방법은 무엇입니까?
- 17. PHP : 변경 내용을 텍스트 파일로 모니터
- 18. ListView 내용을 텍스트 파일로 저장하는 방법?
- 19. 목록 데이터 구조의 내용을 텍스트 파일로 작성
- 20. 텍스트 뷰의 내용을 Symbian의 파일로 저장하려면 어떻게해야합니까?
- 21. 수정 된 텍스트 상자의 내용을 파일로 저장
- 22. 내 목록의 내용을 텍스트 파일로 어떻게 인쇄합니까?
- 23. 텍스트 파일의 내용을 새 파일로 변환
- 24. C# 응용 프로그램은 텍스트 파일로 파일 내용을 엑셀
- 25. Visual C# - 텍스트 상자의 내용을 .txt 파일로 작성
- 26. TextArea의 내용을 파일로 작성하기
- 27. 나는 텍스트 파일로
- 28. 텍스트 파일로 출력 문제
- 29. 콘솔 창 기능은
- 30. 추가 콘솔 창
가능한 복제본 [Console.Write의 결과를 컬렉션 (배열, 목록 등)에 계속 미러링하는 방법이 있습니까?] (http://stackoverflow.com/questions/5368229/is-there-a) 계속되는 거울 - 콘솔 결과 - 수집품) –