2009-05-01 22 views
7

Chỉ có thể hiển thị các câu lệnh đó trong bảng điều khiển, có các từ nhất định.Chỉ hiển thị các câu lệnh gỡ rối Log4j đã chọn

Đối với eq:

logger.debug ("java: hello "); 
    logger.debug ("groovy: hello "); 
    logger.debug ("ruby: hello "); 

Bây giờ, bằng cách thực hiện một số cấu hình hoặc bất cứ điều gì, tất cả các báo cáo được bắt đầu với groovy: sẽ hiển thị.

Trả lời

8

Bạn muốn sử dụng log4j StringMatchFilter đó là một phần của "extras" gói từ khai thác gỗ apache.

Dưới đây là một ví dụ nhanh tìm thấy online:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="CustomAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="custom.log"/> 
    <param name="Append" value="true"/> 
    <param name="MaxFileSize" value="5000KB"/> 
    <param name="maxBackupIndex" value="5"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n" /> 
      </layout> 

      <filter class="org.apache.log4j.varia.StringMatchFilter"> 
        <param name="StringToMatch" value="Here is DEBUG" /> 
        <param name="AcceptOnMatch" value="true" /> 
      </filter> 

      <filter class="org.apache.log4j.varia.DenyAllFilter"/> 
    </appender> 

    <root> 
    <appender-ref ref="CustomAppender"/> 
    </root> 
</log4j:configuration> 
+0

Nghe có vẻ thú vị, bạn sẽ vui lòng xây dựng? –

0

gì về tạo Levels hải quan của bạn

public class Groovy extends Level 

Và sau đó trong bản ghi thuộc tính tập tin thiết lập những mức như cấu hình của bạn

Hope this helps, David.

+0

Cảm ơn David, nhưng thực sự, tôi không muốn bất cứ điều gì như thế. –

0

Có thể sử dụng các trình ghi nhật ký khác nhau (nói nhật ký cho các thư "java" và một cho các thư "groovy"). Cấu hình Log4J có thể được thiết lập với các mức khác nhau cho mỗi bộ ghi.

Bạn có thể đọc thêm here

0

Người ta có thể sử dụng một công cụ để lọc ra các thông điệp. Đối với Windows, bạn có thể thực hiện việc này với BareTail. Việc lọc tin nhắn chỉ có thể thực hiện được với phiên bản chuyên nghiệp (trả phí). Có lẽ có những công cụ khác làm cùng một công việc.

0

Điểm đánh dấu SLF4J có lẽ phù hợp với mục đích của bạn. Tất cả các phương thức in như gỡ lỗi và thông tin trong org.slf4j.Loggeradmit a Marker as a first parameter. Hơn nữa, logback-classic, một bản cài đặt SLF4J có nguồn gốc, được trang bị một bộ lọc có tên là MarkerFilter mà tôi nghĩ là bạn muốn làm gì.

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