2009-03-13 42 views
29

Tôi đang sử dụng Log4net trong một thời gian và đây là một khung đăng nhập tuyệt vời, đặc biệt khi được nối vào Castle.Windsor. Tuy nhiên ...Kích thước tối đa của LogFileAppender trong Log4Net

Tôi thường sử dụng trình bổ sung tệp, nhưng điều này đã dẫn đến quá nhiều tệp nhật ký hơn tôi thực sự muốn, thay vào đó, cho dự án mới nhất của tôi, đã sử dụng LogFileAppender cơ bản thay vào đó, nhưng vấn đề là tệp nhật ký tiếp tục phát triển (dường như mãi mãi).

Làm thế nào tôi có thể nói appender để không đi qua một kích thước cố định (và bắt đầu loại bỏ các bản ghi cũ và phụ thêm những người mới đến tập tin

cấu hình hiện tại của tôi trông giống như:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
    <file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/> 
    <param name="AppendToFile" value="true"/> 
    <maximumFileSize value="2048KB"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/> 
    </layout> 
</appender> 

của nó có vẻ như thuộc tính maximumFileSize không được tôn trọng Bất kỳ giải pháp nào?

Ngoài ra, làm cách nào tôi có thể định cấu hình ứng dụng mở tập tin để chỉ tạo 1 tệp (bao giờ)?

Trả lời

55

lớp Các FileAppender không có các thuộc tính MaxFileSize/MaximumFileSize. Bạn chỉ nhận được chúng nếu bạn sử dụng một RollingFileAppender. Dưới đây là ví dụ sẽ giới hạn tệp của bạn ở kích thước tối đa cố định, không có bản sao lưu (đặt maxSizeRollBackups thành 0). Lưu ý rằng khi tập tin đạt kích thước tối đa của nó, nó truncates (về cơ bản xóa tất cả các ghi chép hiện có và bắt đầu trở lên):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="log.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="0" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
+19

Để tránh cắt ngắn đầy đủ và vẫn giải quyết các vấn đề báo cáo của _too nhiều log files_, tôi muốn giới thiệu cách thiết lập maxSizeRollBackups ở mức thấp, ví dụ 2, và có thể giảm maxFileSize cho phù hợp (cho 2, chia cho 3). Bằng cách đó, ngay sau khi cắt ngắn, bạn vẫn còn có 2/3 số tin nhắn đăng nhập gần đây nhất, thay vì không có. –

2

LogFileAppender không hỗ trợ giới hạn kích thước tệp đầu ra (ít nhất là trong các tham chiếu mà tôi có thể tìm thấy). Để giới hạn kích thước tệp, hãy sử dụng RollingFileAppender và cuộn Kích thước và đặt giới hạn kích thước tệp.

Để hạn chế số lượng cuộn qua các tập tin sử dụng MaxSizeRollBackups thuộc tính

Các vấn đề liên quan