2010-03-05 43 views
6

Tôi đang sử dụng log4Net để đăng nhập. Tôi cũng có các thiết lập sau đây ...Có sự khác biệt nào giữa log4net.Config.BasicConfigurator.Configure() và log4net.Config.XmlConfigurator.Configure() không?

<log4net debug="true"> .. </> 

Ok, bây giờ, khi tôi có đoạn mã sau

log4net.Config.BasicConfigurator.Configure(); 

tôi không thực sự nhận được bất kỳ tiết thông tin nội bộ gỡ lỗi nhưng tôi không nhận được hiển thị bất cứ điều gì tôi đăng nhập.

Bây giờ, khi tôi trao đổi mã mà ra và thay thế nó với điều này:

log4net.Config.XmlConfigurator.Configure(); 

tôi nhận được rất nhiều nội-debug info xml và bất cứ điều gì tôi đăng nhập, được hiển thị.

Vậy tại sao điều này? sự khác biệt giữa hai là gì?

Trả lời

5

BasicConfigurator chỉ cho phép một ứng dụng được định cấu hình, ở gốc và chỉ có thể đăng nhập vào bảng điều khiển. Nó không thực sự cung cấp cho bạn bất kỳ thông tin gỡ lỗi vì có không phải là thực sự bất kỳ thông tin gỡ lỗi nào.

XmlConfigurator cung cấp cho bạn bộ đầy đủ các tùy chọn cấu hình log4net - xem phần Configuration của hướng dẫn sử dụng để biết chi tiết. Nó thực sự bắt đầu với một ví dụ sử dụng BasicConfigurator và tiền thu được để hiển thị cho bạn tất cả các thuộc tính bổ sung mà bạn có thể đặt trong XML.

Trong ứng dụng sản xuất, có thể bạn sẽ muốn có các trình ghi nhật ký khác nhau với các ứng dụng khác nhau sử dụng các ngưỡng và khu vực khác nhau; có thể bạn sẽ nhận được thông tin nhật ký từ nhiều thành phần khác nhau và không muốn thực hiện chính xác việc ghi nhật ký giống nhau cho từng thành phần. Bạn cũng sẽ chắc chắn muốn đăng nhập vào những nơi khác ngoài các giao diện điều khiển - tệp nhật ký, nhật ký sự kiện, cảnh báo qua email, loại điều đó. Bạn chỉ có thể thực hiện việc này với XmlConfigurator.

+0

AH. Gotcha. Tôi hiện đã có hai ứng dụng - ConsoleAppender & OutputDebugStringAppender - vì vậy tôi sẽ sử dụng XmlConfigurator sau đó. Tôi cũng sẽ bổ sung thêm cho sản xuất, sau đó nữa. Cảm ơn bạn đời. –

+4

Thực ra bạn có thể cấu hình BasicConfigurator để đăng nhập vào tập tin, xem http://marc.info/?l=log4net-user&m=117974721929259&w=4 –

4

Có. Nếu bạn muốn cấu hình các bản ghi của bạn trong mã, không phải từ một cấu hình, sau đó bạn muốn sử dụng BasicConfigurator. @Aaronaught Bài đăng của bạn khá cũ, có thể giải thích lý do tại sao sao kê của bạn:

BasicConfigurator chỉ cho phép một appender được định cấu hình, ở gốc và chỉ có thể đăng nhập vào bảng điều khiển.

..is không chính xác. Tôi đang sử dụng BasicConfigurator cho ghi sự kiện, tệp và cơ sở dữ liệu vào tháng 3 năm 2015. Nó cũng hỗ trợ nhiều hơn một appender cho mỗi logger. Log4net của tôi được cấu hình theo lập trình, không phải từ tệp cấu hình.

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