2012-07-18 37 views
12

Chúng tôi đang sử dụng Log4Net từ ứng dụng ASP.NET MVC3 của chúng tôi, tất cả đều hoạt động tốt nhưng chúng tôi muốn xem tên người dùng hiện tại thay vì nhận dạng của hồ sơ ứng dụng trong nhật ký file, đây là cấu hình appender chúng tôi đang sử dụng:Cách lấy tên người dùng hiện tại thay vì nhận dạng AppPool trong logfile bằng Log4Net

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
     <threshold value="ALL" /> 
     <immediateFlush>true</immediateFlush> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <encoding value="utf-8" /> 
     <file value="C:\Logs\MyLogs.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <maxSizeRollBackups value="30" /> 
     <maximumFileSize value="25MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="[%property{log4net:HostName}] - %username%newline%utcdate - %-5level - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <priority value="ALL" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
</log4net> 

Vì vậy, nó có vẻ như bất động sản: %username được lấy giá trị của:

WindowsIdentity.GetCurrent().Name 

Thay vì những gì chúng ta cần: HttpContext.Current.User

Bất kỳ ý tưởng nào về cách chúng tôi có thể giải quyết điều này một cách dễ dàng trong web.config mà không tạo thuộc tính tùy chỉnh hoặc các lớp học bắt nguồn từ log4net bổ sung? Nếu có thể ở tất cả các cách khác nếu tài sản tùy chỉnh là cách duy nhất chúng ta có thể sống với điều đó tôi đoán :) cảm ơn!

+1

Bạn có thể có được điều này thông qua một mô hình appender trong Log4Net phiên bản 1.2.11. Xem http://stackoverflow.com/a/26277219/203371 –

Trả lời

13

Thay thế %username bởi %identity nên thực hiện. Nó đang làm việc cho tôi trong dự án hiện tại của tôi.

Bạn có thể tìm hiểu thêm về log4net với this tuyệt vời hướng dẫn

+2

wow, hoạt động như một nét duyên dáng, cảm ơn !!!!!! –

+1

Không vấn đề gì :) Nó thực sự khá tiện dụng! –

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