Theo kinh nghiệm của tôi, log4net thường nuốt bất kỳ lỗi nội bộ nào, chỉ đơn giản là dẫn đến các câu lệnh nhật ký không tạo ra bất kỳ kết quả nào.
Những gì bạn có thể muốn thử là kích hoạt tính năng ghi nhật ký nội bộ của log4net. Bạn có thể thực hiện việc này bằng cách thêm phần sau vào appSettings
của mình phần:
<add key="log4net.Internal.Debug" value="true" />
Điều này đặt thuộc tính LogLog.InternalDebugging
thành true
. log4net bây giờ sẽ đăng nhập vào các luồng lỗi và đầu ra tiêu chuẩn và tới các trình nghe theo dõi đã định cấu hình.
Bạn có thể sử dụng cấu hình sau để nắm bắt bất kỳ thông báo nào được ghi lại để theo dõi:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
Tất cả các thư được log4net ghi lại nội bộ sẽ xuất hiện trong TextWriterOutput.log
. Nếu bạn nhận được SecurityException
khi bạn thêm trình nghe theo dõi vào cấu hình của mình, thì rất có thể danh tính apppool không có đủ quyền để tạo tệp tại vị trí được chỉ định (trong ví dụ:c:\
). Hãy thử một vị trí khác hoặc cung cấp đủ quyền cho danh tính ứng dụng.