ClickOnce가 배포 한 WinForms 앱이 있습니다. 사용자는 앱의 여러 인스턴스를 시작할 수 있습니다. 각 인스턴스는 별도의 로그 파일에 기록해야합니다. 런타임시 현재 인스턴스의 로그 파일을 검색 할 수 있어야합니다. 따라서 충돌 보고서 등을 보낼 때 사용할 수 있습니다.NLog를 여러 앱 인스턴스와 함께 사용
이제 여러 인스턴스 요구 사항을 해결할 수 없습니다. (실제로 필요한 것은 탭이있는 UI이지만 기존 앱의 큰 난제 중 하나입니다. 지금은 구현할 수 없습니다.)
일반적으로 로깅은 작동하지만 별도의 앱 인스턴스가 동일한 파일을 덮어 씁니다. .
는나는 로그 파일 이름에 타임 스탬프를 추가하려고 노력하지만, 작동하지 않았다 :
<target name="logfile" xsi:type="File"
fileName="${specialfolder:folder=ApplicationData}/MyCompany/CRM/crm_${longdate}.log"
deleteOldFileOnStartup ="true"
layout="${longdate} ${message} ${exception:format=tostring}"/>
은이 모든 수 있습니까?
음 ... 재미 있습니다. 사용자가 동일한 바로 가기를 사용하여 인스턴스를 열기 때문에 명령 줄 매개 변수로이 작업을 볼 수 없습니다. 그러나 각 인스턴스에 고유 한 이름 (예 : 시작 시간 포함)을 생성 한 다음 GlobalDiagnosticsContext를 통해이를 사용할 수 있습니까? – EagleBeak
예. 독특한 것이있는 한. 심지어 guid를 사용하여 로그 파일의 이름을 지정할 수도 있습니다 (즉, GUID를 만들어 GDC에 넣으십시오). 이 방법으로 로그 파일의 이름을 지정하는 유일한 문제는 파일을 이름으로 구별하기 어렵다는 것입니다. 실제로 A.log, B.log, C.log 등과 같은 로그 파일을 얻을 수 있습니다. 그러나 응용 프로그램이 더 자세한 식별 정보를 제공 할 수없는 경우에는 그 제한 사항으로 살아야합니다. – wageoghe
좋습니다. 멋지 네요. 시작 시간은 차별화 요소로 충분해야합니다. 나는 오늘이나 내일 후에 이것을 시험해 볼 시간을 찾고 그 답을 받아 들일 수 있기를 바랍니다. – EagleBeak