2011-06-20 40 views
7

tôi không thể ghi nhật ký bất kỳ thông tin, lỗi, gỡ lỗi bằng log4net, tôi đã thử mọi thứ đã cho phép dịch vụ mạng, mọi người vào thư mục thư mục asp.net temp , thư mục log, thậm chí c: \,Log4net không thể ghi, chỉ tạo các tệp rỗng, nhưng không ghi nhật ký thực tế

nó chỉ tạo một tệp trống. nhưng đừng viết đăng

gì có thể là vấn đề

Thx Raj

+4

Nếu log4net có thể tạo tệp, có thể đó không phải là vấn đề về quyền. Bạn có chắc là đăng nhập được kích hoạt cho cấp nhật ký bạn đang thử nghiệm không? Vui lòng cho chúng tôi biết cấu hình log4net mà bạn có. – driis

+0

Tôi đồng ý với cơn mưa ở đây. Nếu bạn cung cấp cho chúng tôi cấu hình log4net của bạn, chúng tôi có thể cho bạn biết điều gì không và thu hẹp hồ sơ đề xuất của chúng tôi. –

Trả lời

9

Tôi đoán sẽ là trong tập tin cấu hình của bạn, bạn không chỉ định một mô hình bố trí. Thông thường, bạn có thứ gì đó trông như thế này bên trong ứng dụng của bạn:

<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
</layout> 

Điều đó chỉ định ghi vào nhật ký. Nếu bạn không có điều đó, tôi nghi ngờ nó sẽ viết bất cứ điều gì.

Tôi đồng ý với những người trong nhận xét cho biết điều này có thể không phải là vấn đề về quyền do tệp được tạo. Để kiểm tra rằng điều này là đúng, bạn có thể thêm một appender vào cấu hình của bạn mà kết quả đầu ra cho giao diện điều khiển. Sau đó, bạn có thể xem đầu ra khi bạn gỡ lỗi ứng dụng của mình. Nếu điều đó không có tác dụng, bạn biết vấn đề không phải là vấn đề về quyền.

Đề xuất tốt nhất tôi có thể đưa ra là so sánh tệp cấu hình của bạn với tệp đang hoạt động. Đảm bảo rằng mọi phần đều có một đối tác trong cấu hình làm việc hoặc bạn biết tại sao nó không cần phải có. Dưới đây là một bài báo tôi đã viết về log4net trong đó bao gồm giải thích trên tất cả các phần của cấu hình và nó cho thấy làm thế nào để viết chúng:

http://www.codeproject.com/KB/dotnet/Log4net_Tutorial.aspx

Nếu tất cả những điều này không giúp đỡ, xin vui lòng gửi văn bản tập tin cấu hình của bạn trong câu hỏi của bạn để chúng tôi có thể xem xét nó.

2

Một nguyên nhân có thể có của vấn đề này có thể là Cấp độ ghi nhật ký. Kiểm tra xem mức Logging được thiết lập để Fatal và nếu đúng như vậy hãy thử thay thế phần này của web.config:

<log4net> 
     ..... 
     <root> 
       <level value="FATAL" /> 
       <appender-ref ref="RollingFileAppender" /> 
      </root> 
     ..... 
    </log4net> 

với điều này:

<log4net> 
    ...... 
    <root> 
     <level value="DEBUG" /> 
      <appender-ref ref="RollingFileAppender" /> 
     </root> 
    .... 
</log4net> 

Furthemore đừng quên kiểm tra trong phần web.config sự xuất hiện cuối cùng của một số số

<filter type="log4net.Filter.StringMatchFilter"> 
    <stringToMatch value="test" /> 
    </filter> 

phần phụ. Trong trường hợp này, mặc dù mức độ khai thác gỗ được thiết lập để DEBUG (ví dụ) và bạn đặt trong mã của bạn somethig như:

log.Debug("Db quering..."); 

nó sẽ luôn luôn trở lại trống nhưng nếu bạn viết ví dụ:

log.Debug("test: Db quering..."); 

Hãy thử do đó để nhận xét ra các phần lọc và cũng dòng này

<filter type="log4net.Filter.DenyAllFilter" /> 

một điểm này cuối cùng bạn nên làm cho nó làm việc !!

Hy vọng điều này sẽ giúp

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