2010-03-30 26 views

Trả lời

2

ELMAH là mã nguồn mở. Bạn có thể tải xuống nguồn và thực hiện bất kỳ sửa đổi nào bạn muốn (trong các điều khoản của giấy phép, tất nhiên.)

Bạn sẽ có thể bẫy bất kỳ dữ liệu nào được cung cấp bởi đối tượng HttpConext.Request. Bạn sẽ phải sửa đổi mã lấy và lưu trữ dữ liệu và cơ sở dữ liệu để tạo cột cho dữ liệu mới đó.

+0

tôi sẽ sửa đổi nguồn nếu tôi có. tôi đã hy vọng có một cách tích hợp để cấu hình các trường được hiển thị – kenwarner

+0

Tôi không nghĩ rằng có bất kỳ cách nào để thực hiện những thay đổi đó thông qua cấu hình, bạn sẽ phải sửa đổi nguồn. –

4

Bạn có thể viết trang lỗi của riêng mình. Liên kết dữ liệu với số ErrorLog.GetErrors() và sử dụng bất kỳ cột nào bạn muốn:

List<ErrorLogEntry> entries = new List<ErrorLogEntry>(); 
ErrorLog.GetDefault(HttpContext.Current).GetErrors(0, 50, entries); 
string ip = entries[0].Error.ServerVariables["REMOTE_ADDR"]; 
string referrer = entries[0].Error.ServerVariables["HTTP_REFERER"]; 
+3

Điều này gần như hoạt động, ngoại trừ trong phiên bản hiện tại của Elmah (không chắc chắn nếu điều này được sử dụng để được khác nhau), GetErrors() không đầy đủ các đối tượng ErrorLogEntry. Đặc biệt, ServerVariables trống. Bạn phải sử dụng GetErrors() và sau đó cho mỗi đối tượng ErrorLogEntry, gọi GetError (id) để có được một đối tượng ErrorLogEntry được điền đầy đủ ... –

Các vấn đề liên quan