Tôi quyết định sử dụng log4net làm trình ghi nhật ký cho dự án webservice mới. Tất cả mọi thứ đang làm việc tốt, nhưng tôi nhận được rất nhiều tin nhắn như hình dưới đây, cho mỗi thẻ log4net Tôi đang sử dụng trong web.config
tôi:Log4Net "Không thể tìm thấy thông tin lược đồ"
Không thể tìm thấy thông tin schema cho yếu tố 'log4net' ...
Dưới đây là những phần liên quan của web.config
tôi:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level: %message%newline" />
</layout>
</appender>
<logger name="TIMServerLog">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</logger>
</log4net>
quyết:
- Sao chép mỗi thẻ cụ thể của log4net vào một
xml
-file riêng biệt. Đảm bảo sử dụng.xml
làm đuôi tệp. - Thêm dòng sau vào
AssemblyInfo.cs
:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xmlFile.xml", Watch = true)]
nemo thêm:
Chỉ cần một lời cảnh báo cho bất cứ ai theo lời khuyên của các câu trả lời trong chủ đề này. Có thể có rủi ro bảo mật có thể là bằng cách đặt cấu hình log4net trong xml ngoài gốc của dịch vụ web, vì nó sẽ là có thể truy cập được cho bất kỳ ai theo mặc định. Chỉ cần được thông báo nếu cấu hình của bạn chứa dữ liệu nhạy cảm, bạn có thể muốn để đặt nó ở nơi khác.
@wcm: Tôi đã thử sử dụng một tệp riêng biệt. Tôi đã thêm dòng sau vào AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
và đặt tất cả mọi thứ đối phó với log4net trong tập tin đó, nhưng tôi vẫn nhận được những thông điệp tương tự.
Trong khi nó làm việc cho tôi, trong Debug Output nó đã cảnh báo về thiếu các phần trong tập tin cấu hình chính. Vì vậy, tôi đã phải giữ chúng nhưng trống rỗng như thế này ' 'để làm cho cảnh báo biến mất –