Điều này tương tự như 650694 nhưng không có câu trả lời nào được chấp nhận ở đó, tôi không thể nhận được bất kỳ gợi ý nào để làm việc và tôi nghi ngờ mình có thể ở trong tình huống hơi khác.Thay đổi mức ghi log4net theo lập trình
Tôi đang gọi log4net.Config.XmlConfigurator.Configure(). Nhưng sau thời điểm đó trong chương trình, tôi muốn thay đổi ngưỡng đăng nhập thành một giá trị chỉ được biết khi chạy.
Từ câu hỏi khác, tôi đã cố gắng:
((log4net.Repository.Hierarchy.Logger)mylogger.Logger).Level = log4net.Core.Level.Error;
và:
var appender = new log4net.Appender.ColoredConsoleAppender();
appender.Layout = new log4net.Layout.PatternLayout(@"%date %-5level %message%newline");
appender.Threshold = log4net.Core.Level.Error;
appender.ActivateOptions();
log4net.Config.BasicConfigurator.Configure(appender);
nhưng không ai có vẻ có bất kỳ tác: Tôi vẫn thấy DEBUG và INFO báo cáo trên giao diện điều khiển đăng nhập . Linh cảm của tôi là tôi đang thêm một appender mới, mà không có tác dụng lên appender được khai báo trong cấu hình XML (nó cho nó để in các thông báo mức DEBUG), nhưng tôi chưa có bất kỳ bằng chứng nào cho điều này. Tuy nhiên, tôi không có bất kỳ bằng chứng nào cho điều này .
Tôi đã tìm hiểu qua API log4net một lúc và tôi không thấy nó. Có cái gì đơn giản tôi đang mất tích?
Đặt mức của Trình ghi nhật ký thành "Lỗi" sẽ ngăn chặn bất kỳ lỗi hoặc thông tin đầu ra nào từ trình ghi nhật ký đó khỏi bị ghi nhật ký. Bạn đang nhìn thấy DEBUG và INFO cho Logger rất có mức độ đăng nhập bạn đang thay đổi? – Eddie
Đó là một điểm tốt: # 1 có thể chỉ đặt ngưỡng cho một trình ghi nhật ký. Nhưng # 2 có vẻ như nó phải là toàn cầu. – Ken
Có # 1 chỉ đặt ngưỡng cho cá thể Logger duy nhất bạn đang thay đổi, cộng với bất kỳ Trình ghi nào bên dưới nó trong cấu trúc phân cấp không có cấp độ được đặt rõ ràng. – Eddie