2009-09-25 10 views
7

Tôi làm cách nào để có được tên tệp nhật ký trong mã? (Vì vậy, tôi có thể in nó ra cửa sổ Console)Tôi làm cách nào để lấy tên tệp nhật ký thông qua mã?

log file của tôi là xác định như thế này trong app.config:

<appender name="RollingLogFileAppender" 
    type="log4net.Appender.RollingFileAppender"> 
     <file value="logfile" /> 
    ... 

Trả lời

8

Bạn nhìn vào LogManager.GetAllRepositories của bạn. Bên trong các kho lưu trữ bạn xem xét tất cả các ứng dụng trong số ILoggerRepository.GetAppenders. Nếu appender là loại RollingFileAppender bạn kiểm tra tài sản File của nó, hoặc nếu bạn preffer bạn có thể kiểm tra các appender bởi Name.

Điều đó được cho là rất không tốt để làm điều gì đó như thế này trong mã của bạn. Điều gì sẽ xảy ra nếu cấu hình được thay đổi khi triển khai và ứng dụng mà bạn mong đợi không còn tồn tại nữa?

+0

Vâng, tôi có thể kiểm tra cho null giá trị. Điều gì về việc đọc app.config bằng cách nào đó? – User

+0

xem ví dụ tại http://msdn.microsoft.com/en-us/library/system.configuration.configuration.getsection.aspx về cách đọc (các) phần cấu hình của riêng bạn. Tôi khuyên bạn nên againts nó, mặc dù. –

+0

Tôi muốn in ra bảng điều khiển nơi tệp nhật ký thuận tiện. Bất kỳ cách nào để làm điều này bạn sẽ đề nghị? – User

0

xem Thuộc tính tệp của mục này.

Log là dụ ILOG của

((log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl) Log.Logger) .Appenders.OfType(). FirstOrDefault(). Tập tin