2012-06-11 2 views
0

콘솔에서 .Net 응용 프로그램에서 리눅스 주소 get-content .\log.log -Wait과 비슷한 log4net 이벤트 스트림을 볼 수 있습니다. 이것은 tail 명령과 비슷합니다. 가정은 FileSystemWatcher를 사용합니다. 나는이 작동하지 않을 것 asp.net MVC 응용 프로그램을 할 때마다 몇 가지 이유를 들어 asp.net mvc를 가진 log4net - 변경을위한 파일을 볼 수 없습니다

. 지우기 위해 로그 파일에 기록됩니다. 내가 원하는만큼을 get-content .\log.log 가장 최근의 결과를 얻을 수 있지만, -wait 매개 변수 나는 변화가 과거를 스크롤 볼 수 없다.

여기에 어떤 일이 벌어지고 있는지에 대한 통찰력이있는 사람이 있습니까?

답변

1

업데이트 : 내 사례에 대한 해결책을 찾았습니다. 이것이 도움이되는지 확신 할 수 없습니다.

대신 PowerShell을 사용하여, 나는 win-bash을 다운로드하고 지금은 나를 위해 완벽하게 작동이 익숙한 유닉스 명령을 사용하고 있습니다.

tail -f access.log 

.Net 프로그래밍에 익숙하지 않습니다. PowerShell 대신 win-bash 프로젝트의 bash.exe를 사용하는 것이 효과가 있습니까?


PowerShell에서 "tail"Apache 액세스 로그를 만들 때 비슷한 문제가 발생합니다.

Get-Content .\access.log -Wait 

Apache HTTP 서버가 실행 중일 때 핸들이 acccess.log로 열려 있고 -Wait가 작동하지 않는 것으로 나타났습니다. HTTP 서버를 중지하면 핸들이 해제되고 텍스트 편집기를 사용하여 access.log를 수동으로 변경하면 내 PowerShell 창에 콘솔의 변경 내용이 즉시 반영됩니다.

는 그래서 다른 프로그램이 파일에 대한 열린 핸들이있는 경우, 변경이 콘솔에 반영되지 않습니다 가정합니다. 불행히도 지금까지이 문제를 해결할 방법을 찾지 못했습니다.

+0

나는 문제가 파일 잠금 함께하지만 내 관심사는 더 그 log4net 그 모든 일을해서는 안이라고 생각하십니까! 그 잠금을 해제 할 구성 설정에 대해 더 많은 것을 기대하고있었습니다. 제쳐두고, cygwin보다 win-bash를 선택하는 이유는 무엇입니까? –

+0

내가 Cygwin에서 이전에 사용했지만, 지금은 Cygwin에서 설치하지 않았고 윈 - bash는 신속하고 충분히 쉽게 보였다. cygwin은 설치가 필요한 반면 bash.exe를 사용하여 다운로드하고 시작했습니다. Unix와 비슷한 환경이 더 필요하다면 win-bash를 사용하고 cygwin을 다시 사용하기 시작할 것입니다. – Perttu

관련 문제