elmah를 적용해보자.

설치한다.

Web.conf가 자동으로 변경됨.

개발시는 이걸 보고 서버에서는 사용안할려면

<elmah>
    <security allowRemoteAccess="false">
</elmah>

이러면 된다..그런데 난 서버에서 나는 에러도 보고 싶다..(이메일로) 그러므로 true로 바구자.

<elmah>
<security allowRemoteAccess="true">
</elmh>

그럼 아무나 다 볼수가 있게 되버린다.

그러므로 특정 유저만 볼수있게 바꿔보자.

appsetting에 잇는 다음 부분을 수정해야한다.

<add key="elmah.mvc.allowedRoles" value="*">
<add key="elmah.mvc.allowedUsers" value="myusername">

myusername으로 세팅을 해서 내가 이 아이디로 로그인할때만 엘마를 볼수가 있다. 권한으로 처리해도 된다. 그런데 난 그냥 귀찮아서 유저이름만 처리

이 두개를 조절하면 권한과 그룹으로 다 정리가능 *는 모든 사용자를 의미.

이제 서버에서 디플로이해서 확인해보자. 보인다.. 예전 버전에는 http://www.server.com/elmah 면 된다. 아무내용도 없다..이제 url에 아무글자나 처서 에러를 발생해보자.

http://myserver.com/asdfasdfasdfasdfasdf

에러가 난다..

다시 elmah로 간다….화면에 내용이 나온걸 알수있다.

Details 링크를 클릭해서 들어가보면 아래와 같이 자세한 내용을 확인할 수 있다

이제 대충 완성됫다.

이메일로 받아보자.

<elmah>
<security allowRemoteAccess="true"/>
<errorMail
    from="servername@aaa.com"
    to= "support@aaa.com"
    subject="email title"/>
</elmah>

이메일로 받게 해두엇는데 이메일 세팅이 기본 web.conf가없다.


<mailSettins>
    <snmp>
        <network host="localhost">
    </snmp>
</mailSettins>

Elmah 태그에 errormail을 추가해주자..

웹서버를 재시작하면 이메일로 아까 그 에러가 온다.

아까 서버에서 권한을 줘서 다른사람이 못보게 햇는데 이부분이 불안하면 Allowremoteaccess를 false로 하고 모든 에러를 이메일로 받아도 된다.

Elmah를 디비에 저장할수도 있다.

일단 스크립트를 다운받자. https://code.google.com/p/elmah/wiki/Downloads?tm=2

이렇다.. mssql로 하자..쉽다..

클릭하면 스크립트를 다운 받을수 있다.

테이블 하나와 기타 몇가지를 더 설치한다.

디비는 web_err_log라고 하나 만든 다음

스크립트를 실행하자.

디비 완성.

Web.config에 디비 정보를 넣자…

<connectionStrins>
    <add name="www_err_logDbContext" connectionString="Data Source=localhost;Initial Catalog=LogDatabase;Persist Security Info=True;User ID=username;Password=password;MultipleActiveResultSets=True" providerName="System.Data.SqlClient">
</connectionStrins>

커넥션 스트링에 추가

<configSectios>
    <sectionGroup name="elma">
        <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah">
        <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah">
        <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah">
        <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah">
    </sectionGrop>
</configSectios>

<elmah>
    <security allowRemoteAccess="true">
    <errorMail
        from="aaa@bbb.com"
        to="support@xxx.com"
        subject="ko-atv.com web error mail"/>
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="www_err_logDbContext ">
</elmah>

완료

서버에 디플로이 웹서버 재시작을 한다.

에러를 발생하자.

http://myserver.com/asdfasdfasdfasdfasdf

에러 발생되면

<a href="http://myserver.com/elmah">

페이지에도 나오고

디비에도 저장됨을 확인할 수 있다.

Select * from ELMAH_Error

teamsmiley's profile image

teamsmiley

2014-08-20 04:16

Read more posts by this author