Tôi đang sử dụng log4net để đăng nhập một dự án.Tạo một thể hiện log4net.ILog khác cho mỗi ứng dụng
Tôi muốn đăng nhập vào 3 tệp khác nhau: yêu cầu, phản hồi và lỗi.
<log4net debug="true">
<!--To turn off an appender, simply set it's threshold value to "OFF"-->
<appender type="log4net.Appender.RollingFileAppender" name="RequestAppender">
<file value="requests.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ResponseAppender">
<file value="responses.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ErrorAppender">
<file value="errors.txt" />
<threshold value="ERROR" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
</log4net>
Tuy nhiên, tôi không biết cách lấy ví dụ cho mỗi trình ghi nhật ký ở phía .NET. Với standrard, 1 appender cấu hình, tôi sử dụng để sau:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Nhưng điều này không xác định appenderName, và tôi đã không tìm thấy một cách để xác định nó.
Bất kỳ ý tưởng nào?
Cảm ơn!
EDIT: Tôi nghĩ rằng tôi thiếu một số thứ như tôi không có định nghĩa trong tệp cấu hình của mình. Tôi không hiểu sự tách biệt giữa các logger và appenders.
EDIT # 2: Tôi nhận thấy điều gì đó kỳ lạ. Trước khi cấu hình nhiều logger 3 tôi đã có một cấu hình 1 logger. Bây giờ, các bài viết tôi viết vào 3 logger ghi vào tập tin đăng nhập đó, mặc dù nó không còn trong tập tin cấu hình. Vì một số lý do, nó không tải tập tin cấu hình mới. Làm thế nào tôi có thể buộc nó làm như vậy?
Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm http://stackoverflow.com/questions/1372435/configure-log4net-to-write-to-multiple-files – Microtechie
Tôi cũng nghĩ như vậy và cú pháp có vẻ ổn, nhưng nó không hoạt động. Nó biên dịch và chạy tốt. Tuy nhiên, tất cả các thành viên isLevelEnabled của tất cả các logger được đặt thành TRUE mặc dù đó không phải là cách chúng được thiết lập, và các bản ghi kiểm tra mà tôi đã viết không được ghi lại. – Niv
Hãy thử điều này - [link] (http://stackoverflow.com/questions/308436/log4net-programmatically-specify-multiple-loggers-with-multiple-file-appenders) – Nilesh