Có hai cách để cấu hình và sử dụng log4net. Đầu tiên là khi tôi có thể định cấu hình appender của riêng mình và trình ghi liên kết:
<!-- language: xml -->
<appender name="myLogAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs\myLog.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%n" />
</layout>
</appender>
<logger name="myLog">
<level value="All"></level>
<appender-ref ref="myLogAppender" />
</logger>
Và sau đó khi tôi muốn viết một cái gì đó vào nhật ký, tôi có thể làm như sau:
ILog log = LogManager.GetLogger("myLog");
log.Info("message");
Một cách khác để sử dụng nó là cấu hình root chi tiết như tôi muốn:
<!-- language: xml -->
<root>
<level value="Error" />
<appender-ref ref="myLogAppender" />
</root>
Và trong trường hợp này, tôi có thể ghi lại các thông báo như sau:
ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");
Lợi ích của cách tiếp cận thứ hai là bạn có thể bật hoặc tắt một số thông báo một cách nhanh chóng. Nhưng vấn đề là tôi đang phát triển trong EPiServer CMS và nó có hệ thống ghi nhật ký riêng sử dụng log4net và nếu tôi bật ghi nhật ký thông tin ở cấp cơ sở, thì rất nhiều nhật ký hệ thống sẽ được ghi.
Bạn sử dụng log4net như thế nào? Mỗi phần của một hệ thống ghi trong trình ghi của riêng nó, hay mọi thứ được viết trong trình ghi mặc định và cấu hình quyết định phải làm gì tiếp theo?