Visual Studio에서 사용중인 구성을 기반으로 응용 프로그램 이름을 변경해야합니다. 예를 들어, 디버그 구성에 있으면 응용 프로그램 이름을 Elmah_Error 테이블의 응용 프로그램 필드에 'App_Debug'로 표시해야합니다. 이 경험이있는 사람이 있습니까? 아니면 다른 방법이 있을까요?Elmah에서 프로그래밍 방식으로 응용 프로그램 이름을 설정할 수있는 방법이 있습니까?
답변
기본적으로 Elmah는 AppPool의 응용 프로그램 GUID를 기본 응용 프로그램 이름으로 사용합니다. HTTP 모듈을 통해 생성 된 웹 인터페이스를 볼 때 Elmah_Error 테이블의 오류를 식별하는 데 키를 사용합니다.
나는 올해 초에 내 회사를 위해이 옵션을 탐구 할 임무가 주어졌다. Elmah가 ErrorLog.cs 파일의 HttpRuntime.AppDomainAppId
에서 응용 프로그램 이름을 가져온 이래로 기본적으로이 방법을 조작 할 방법을 찾지 못했습니다. 원하는 키로 조작 할 수 있습니다. 그러나 그것은 AppPool의 GUID입니다.
그렇다고해서 ErrorLog.cs 파일을 조작하여 Elmah를 핸들러 기반 대신 호출 가능한 프레임 워크로 만들 수 있었고 ApplicationName을 설정할 수있었습니다. 나는 나에게 다음과 같이 이름을 설정할 수 속성 포함 ErrorLog.cs를 수정 한 일을 결국 무엇 :
public virtual string ApplicationName
{
get
{
if (_applicationName == null) { _applicationName = HttpRuntime.AppDomainAppId; }
return _applicationName;
}
set { _applicationName = value; }
}
는 당신이 아마 수행해야합니다 것은 다른이를 조정하고 HttpRuntime.AppDomainAppId
하지 않도록 ApplicationName을 설정입니다 만 대신 web.config에서 가져온 값입니다. 대체로 가능합니다. 내가 수행 한 방법은 ErrorLog.Log(ex)
메소드를 향상 시켰기 때문에 Elmah는 웹 애플리케이션 이외의 호출 가능한 프레임 워크를 사용할 수있었습니다. 되돌아 보면 나는 app/web.config 접근 방식을 대신 사용했다면 좋겠다.
Elmah에서 응용 프로그램 이름을 변경할 때 유의해야 할 사항 중 하나는 다음과 같습니다. /elmah/default.aspx 인터페이스를 생성하는 http 핸들러가 더 이상 작동하지 않습니다. 나는 아직도 그와 같은 곳으로 돌아갈 시간을 찾고있다. 그러나 구현할 때 사용자 지정 인터페이스를 만드는 방법을 찾아야 할 수도 있습니다.
이제 마크 업에서 순전히 수행 할 수 있습니다. web.config 파일의 <elmah>
섹션에있는 errorLog
요소에 applicationName
속성을 추가하기 만하면됩니다. 예 :
<errorLog type="Elmah.SqlErrorLog, Elmah"
connectionStringName="connectionString" applicationName="myApp" />
나는 이것을 테스트 한 예외를 로그인 할 때와 Elmah.axd
를 통해 로그를 볼 때 그것은 모두 작동합니다. 영업 이익의 경우
- 1. 프로그래밍 방식으로 J2ME 응용 프로그램 제거
- 2. 프로그래밍 방식으로 응용 프로그램 제거
- 3. 프로그래밍 방식으로 UITableViewController의 dataSource를 설정할 수 있습니까?
- 4. 브라우저의 프록시를 프로그래밍 방식으로 설정할 수 있습니까?
- 5. 프로그래밍 방식으로 파이썬 바이트 코드를 생성 할 수있는 방법이 있습니까?
- 6. 애플릿이 프로그래밍 방식으로 자체 캐시를 비울 수있는 방법이 있습니까?
- 7. Silverlight에서 프로그래밍 방식으로 Data/ItemTemplate을 변경할 수있는 방법이 있습니까?
- 8. listview에서 선택한 항목을 설정할 수있는 방법이 있습니까?
- 9. 게시 매개 변수를 설정할 수있는 방법이 있습니까?
- 10. Android : 설치 프로그램 파일 이름을 프로그래밍 방식으로 얻는 방법?
- 11. 프로그래밍 방식으로 Apple의 노출을 확장하는 방법이 있습니까?
- 12. BlackBerry에서 numlock을 프로그래밍 방식으로 설정하는 방법이 있습니까?
- 13. 컴퓨터 이름을 프로그래밍 방식으로 변경하십시오.
- 14. 프로그래밍 방식으로 설정 응용 프로그램 (iPhone)
- 15. 컴퓨터에서 프로그래밍 방식으로 SMS에 액세스하는 방법이 있습니까?
- 16. 프로그래밍 방식으로 응용 프로그램 바로 가기 설치
- 17. 프로그래밍 방식으로 응용 프로그램 메뉴 표시 (wp7)
- 18. Vista에서 프로그래밍 방식으로 응용 프로그램 실행
- 19. Visual Studio Tool없이 리소스 이름을 생성 할 수있는 방법이 있습니까?
- 20. 프로그래밍 방식으로 자동 시작 Mac 응용 프로그램
- 21. 프로그래밍 방식으로 ScatterViewItem 이름을 지정하십시오.
- 22. Windows에서 Java 응용 프로그램의 "openwith"이름을 바꿀 수있는 방법이 있습니까?
- 23. 바자 저장소에 프로그래밍 방식으로 액세스하는 방법이 있습니까?
- 24. 프로그래밍 방식으로 RSpec 테스트를 계산하는 방법이 있습니까?
- 25. 프로그래밍 방식으로 web.py를 중지하는 방법이 있습니까?
- 26. 프로그래밍 방식으로 System.Drawing.Image에 텍스트를 추가하는 방법이 있습니까?
- 27. Android에서 프로그래밍 방식으로 기본 홈/런처를 설정하는 방법이 있습니까?
- 28. 대화식으로 Python curses 응용 프로그램을 프로그래밍 할 수있는 방법이 있습니까?
- 29. 프로그래밍 방식으로 COM + 응용 프로그램의 응용 프로그램 루트 디렉터리 설정
- 30. 프로그램 적으로 DPI를 설정할 수 있습니까?
아주 사소한 생각이지만,이 패턴이 더 마음에 든다. return _applicationName ?? (_applicationName = HttpRuntime.AppDomainAppId); –
Elmah의 데이터베이스에있는 저장 프로 시저에는 응용 프로그램 이름에 대한 필터가 있습니다. 내 환경의 모든 저장 프로 시저를 변경하여이 필터를 무시하므로 모든 오류를 단일 콘솔에서 볼 수 있습니다. –