2012-06-08 7 views
16

Tôi có RollingFileappender sau trong tệp cấu hình đăng nhập của mình.FileNamePattern trong RollingFileAppender - cấu hình đăng nhập

<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <File>C:\Files\MyLogFile.log</File>  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <FileNamePattern>C:\Files\MyLogFile.%d{yyyy-MM-dd}.log</FileNamePattern>  
    <MaxHistory>30</MaxHistory>  
    </rollingPolicy>  
    <encoder> 
     <pattern>%date %level [%thread] %logger{60} [%file:%line] %msg%n</pattern> 
    </encoder> 
    </appender> 

Nó ghi tệp vào thư mục ở trên là MyLogFile.log nhưng không thêm ngày được chỉ định trong FileNamePattern. Bất kỳ ý tưởng làm thế nào tôi có thể quản lý để nối thêm ngày trong tên tệp của tôi. Cảm ơn.

+0

Đây là một câu hỏi hay và làm tôi bối rối. LogBack giữ đăng nhập vào MyLogFile.log và không bao giờ kết thúc trong MyLogFile.% {Yyyy-MM-dd} .log Tôi tự hỏi những gì sử dụng cho thuộc tính tệp này. –

Trả lời

25

Các tài liệu cho TimeBasedRollingPolicy trạng thái:

Lưu ý rằng file tài sản trong RollingFileAppender (phụ huynh của TimeBasedRollingPolicy) có thể được một trong hai thiết lập hoặc bỏ qua. Bằng cách đặt thuộc tính tệp của chứa FileAppender, bạn có thể tách riêng vị trí của tệp nhật ký hoạt động và vị trí của nhật ký đã lưu trữ tệp. Nhật ký hiện tại sẽ luôn được nhắm mục tiêu theo tệp được chỉ định bởi thuộc tính file. Theo sau, tên của tệp nhật ký hiện đang hoạt động sẽ không thay đổi theo thời gian. Tuy nhiên, nếu bạn chọn bỏ qua thuộc tính file thì tệp đang hoạt động sẽ được tính lại cho mỗi khoảng thời gian dựa trên giá trị của fileNamePattern.

Trong trường hợp của bạn, chỉ cần bỏ qua thuộc tính file.

+0

làm việc kỳ diệu .. Cảm ơn Ceki. Ví dụ: – Aks

+0

trên trang web http://logback.qos.ch/manual/appenders.html bị hỏng, nó sử dụng cả tệp và tệpNamePattern – Marx

2

Ví dụ: bạn có thể sử dụng cấu hình sau. Nó đã được thử nghiệm và hoạt động :)

<!-- FILE APPENDER WITH PRUDENT MODE --> 
<!-- IN PRUDENT MODE CANNOT BE SPECIFIED FILE, THIS PARAM IS OBTAINED FROM FILE NAME PATTERN --> 
<!-- IN PRUDENT MODE ONLY TIME BASED ROLLING POLICY IS SUPPORTED - BECAUSE WE HAVE A LOG OF MULTIPLE JVM INSTANCES--> 
<!-- SEE MORE AT http://logback.qos.ch/manual/appenders.html#prudentWithRolling --> 
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${logfile.path}-%d{yyyy-MM-dd}.log</fileNamePattern> 
    </rollingPolicy> 

    <encoder> 
     <pattern>${HOSTNAME} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
</appender>