C# 으로 asp.net 에러 로그 남기기
아래 문서 참고 할것
http://support.microsoft.com/default.aspx?scid=kb;en-us;306355
웹사이트에서 어떤오류가 나는지 항상 보고 받고 싶을때.
-------------------
<script language=C# runat="server">
void
Page_Load(object sender, System.EventArgs e)
{
throw(new
ArgumentNullException());
}
public void Page_Error(object
sender,EventArgs e)
{
Exception objErr =
Server.GetLastError().GetBaseException();
string err = "<b>Error Caught
in Page_Error event</b><hr><br>"
+
"<br><b>Error in: </b>" + Request.Url.ToString()
+
"<br><b>Error Message: </b>" +
objErr.Message.ToString()+
"<br><b>Stack
Trace:</b><br>"
+
objErr.StackTrace.ToString();
Response.Write(err.ToString());
Server.ClearError();
}
</script>
---------------------------
다음 소스를 실행해보세요.
코드 비하인드로 실행시는
다음과 같이 이벤트를 추가 해야합니다.
private void
InitializeComponent()
{
this.Load += new
System.EventHandler(this.Page_Load);
this.Error += new System.EventHandler(this.Page_Error);
}
페이지 마다 실행하는게 매우 귀찮타면..
global.asax 에 Application_Error 서 실행합니다.
protected void Application_Error(Object sender, EventArgs
e)
{
string err = "<b>Error Caught in Page_Error event</b><hr><br>" +
"<br><b>Error in: </b>" + Request.Url.ToString() +
"<br><b>Error Message: </b>" + objErr.Message.ToString()+
"<br><b>Stack Trace:</b><br>" +
objErr.StackTrace.ToString();
Response.Write(err.ToString());
Server.ClearError();
}
응용하여 text 파일의 로그파일을 생성하게 하든지. 관리자에게 해당 오류를 메일로 발송하던지.
특정페이지로 이동하여 유저에게 적절한 메시지를 뿌려주게도 할수 있습니다.