2009-03-05 41 views
62

Tôi muốn logfile của tôi để tìm một cái gì đó như thế này: 2009-02-13.logLog4Net: Rolling file appender, xác định phần mở rộng

nhưng vấn đề là tôi dường như không thể tìm thấy bất cứ cách nào để thêm .log mở rộng.

Tôi đã thử rất nhiều thứ nhưng không có gì hữu ích. Đây là những gì tôi có điều này cho đến nay:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Logs/Log4Net/.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Date"/> 
    <datePattern value="yyyy-MM-dd" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
    </layout> 
</appender> 

Trả lời

53

Hãy thử thêm phần mở rộng .log để mô hình ngày của bạn như vậy và loại bỏ nó khỏi các thuộc tính tập tin.

<datePattern value="yyyy-MM-dd.lo\g"/> 
... 
<staticLogFileName value="false" /> 
+7

Cũng nên nhớ để thêm

8

add ".lo \ g" đến hết datepattern bạn

105

Những câu trả lời khác thoát khỏi "g" trong "đăng nhập" vì "g" là một nhân vật đặc biệt trong datePattern. Điều này không sai, nhưng tôi thích bọc toàn bộ các ký tự không phải là ngày tháng trong dấu nháy đơn, như vậy:

<datePattern value="yyyy-MM-dd'.log'" /> 

Điều này mang lại kết quả tương tự nhưng dễ quản lý hơn. Bằng cách này, tôi không phải nhớ lại các ký tự cụ thể nào là đặc biệt cho datePattern (danh sách dài và đa dạng). Nếu tôi quên một nhân vật thì tôi không có nguy cơ borking tên tập tin của tôi; tất cả bọn họ đều trốn thoát tuyệt vời.

+3

Tôi cũng thích cách tiếp cận này. –

+1

Vậy giá trị bạn có cho là bao nhiêu? – ssmith

+2

@smith: Để lại '.log' từ' '. Log4Net chắp thêm datepattern vào giá trị tệp, vì vậy bạn muốn phần mở rộng tệp trên trước đây. –

4

Đây là tệp cấu hình xml của tệp nhật ký của tôi. Đường dẫn đến tệp nhật ký nằm trong thẻ "tệp"

Điều này sẽ tạo tệp nhật ký "2012-11-22.log" trong thư mục "LogFiles" trong thư mục tuyến đường của trang web của tôi.

LƯU Ý: Đảm bảo rằng thư mục tồn tại trước tiên!

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,  log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="LogFiles/"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date"/> 
     <maxSizeRollBackups value="5"/> 
     <maximumFileSize value="10MB"/> 
     <datePattern value="yyyy-MM-dd'.log'" /> 
     <staticLogFileName value="false"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/> 
     </layout> 
    </appender> 
    </log4net> 
</configuration> 
15

log4net bây giờ cũng cung cấp một tài sản mà có thể buộc mở rộng .log của mình vào cuối tên tập tin hợp chất PreserveLogFileNameExtension (bao gồm ngày mô hình và/hoặc số thứ tự kích thước):

<file value="LogFiles/.log"/> 
<preserveLogFileNameExtension value="true" /> 
<datePattern value="yyyy-MM-dd" /> 
+0

Chỉ được sử dụng trên các phiên bản mới hơn? Tôi không thể lấy thông số đó để làm việc trên hệ thống của mình. Tôi đã kết thúc phải sử dụng .log hai lần, một lần trong giá trị tệp và một lần khác trong datePattern: ( – Sun

+1

Tôi tin rằng nó đã được thêm vào trong 1.2.12 –

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