2010-03-15 38 views
11

Trên ứng dụng webform asp của tôi, tôi sẽ thực hiện khởi tạo log4net;Cách cấu hình log4net cho WCF

log4net.Config.XmlConfigurator.Configure(); 

trên global.asax trên Application_Start để nó được thực hiện một lần khi ứng dụng bắt đầu.

Cách đúng để cấu hình log4net cho IIS được lưu trữ WCF ứng dụng (yêu cầu cụ thể về nơi để đặt dòng này sự kiện để sử dụng vv) để log4net được khởi tạo một lần và không có khởi tạo không cần thiết.

Trả lời

3

Điều tương tự: Application_Start. Sau khi tất cả nó là một ứng dụng ASP.NET. Đối với các dịch vụ tự lưu trữ, bạn có thể cấu hình log4net ngay trước khi bắt đầu lưu trữ.

+1

Tôi đã thêm global.asax và bật ASPNetCompatibility thông qua thuộc tính webconfig và dịch vụ. Tôi hiện đang nhận được một hit trên Application_BeginRequest và Session_Start nhưng Application_Start không bao giờ bị tấn công. Bất kỳ ý tưởng tại sao điều này sẽ xảy ra? Tôi giết tất cả w3wp trước khi gỡ lỗi để đảm bảo ứng dụng được bắt đầu lần đầu tiên .. – kaivalya

15

Tôi thường làm điều này trong constructor của lớp dịch vụ của tôi, nhưng tôi kiểm tra xem log4net đã được cấu hình:

if (!LogManager.GetRepository().Configured) 
{ 
    // configure log4net... 
} 

Tôi nghĩ rằng nếu bạn thực sự muốn tránh điều này bạn sẽ phải viết xưởng dịch vụ của riêng bạn và thực hiện cấu hình ở đó.

1

Thêm:

XmlConfigurator.Configure(); 

để các nhà xây dựng của từng lớp dịch vụ đã làm các trick cho tôi.

+3

Để cải thiện chất lượng bài đăng của bạn, vui lòng bao gồm cách/tại sao mã này sẽ giải quyết được sự cố. –

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