5.1 Danh sách các bộ lọc

Trình ghi nhật ký cho phép bạn định cấu hình lọc thư rất thú vị. Để làm được điều này, anh ấy có vài chục bộ lọc với đủ loại thông số. Bảng dưới đây cho thấy những cái phổ biến nhất.

bộ lọc Sự miêu tả
1 BurstFilter Cho phép bạn kiểm soát tần suất gửi tin nhắn mỗi giây cho một mức ghi nhật ký nhất định.
2 Bộ lọc tổng hợp Cho phép bạn đặt nhiều bộ lọc tuần tự.
3 Bộ lọc ngưỡng động Cho phép bạn bật ghi nhật ký chi tiết nếu tìm thấy thông tin nhất định trong nhật ký.
4 Bộ lọc bản đồ Cho phép bạn xây dựng một biểu thức logic phức tạp cho bộ lọc từ một số tham số.
5 Bộ lọc đánh dấu Cho phép bạn lọc thư theo thẻ, trước tiên thẻ phải được thêm vào trong quá trình ghi nhật ký sự kiện.
6 Bộ lọc Regex Cho phép bạn đặt mặt nạ - biểu thức chính quy.
7 Bộ lọc dữ liệu có cấu trúc Cho phép bạn lọc thư theo sự hiện diện của dữ liệu nhất định trong đó.
số 8 ThreadContextMapFilter Cho phép bạn quản lý các bộ lọc dựa trên dữ liệu được lấy từ ngữ cảnh của chuỗi hiện tại.
9 Bộ lọc ngưỡng Kiểm soát ghi nhật ký dựa trên cấp độ thông báo tường trình.
10 Bộ lọc thời gian Cho phép bạn bật và tắt bộ lọc vào những thời điểm cụ thể.

Dưới đây chúng tôi sẽ nói về chỉ ba trong số họ. Bạn có thể tìm hiểu thêm về các bộ lọc này trên trang web chính thức của họ .

5.2 Bộ lọc thời gian

Bộ lọc TimeFiltercho phép bạn bật và tắt bộ lọc tại một thời điểm nhất định, nó có 5 tham số:

1 bắt đầu Thời gian bắt đầu ghi nhật ký ở định dạngHH:mm:ss
2 kết thúc Thời gian đăng xuất ở định dạngHH:mm:ss
3 Múi giờ Đặt múi giờ.
4 onMatch Cách đăng nhập nếu điều kiện lọc là đúng . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.
5 onMismatch Làm thế nào để đăng nhập nếu điều kiện bộ lọc là sai . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.

Hãy thiết lập một bộ lọc sẽ bật ghi nhật ký lúc 5 giờ sáng và tắt nó vào lúc 5:30 sáng hàng ngày. Dưới đây là một ví dụ với cấu hình bộ lọc hoàn chỉnh:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
        <TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>

5.3 Bộ lọc Regex

Bộ lọc RegexFiltercho phép bạn đặt mặt nạ (biểu thức chính quy) để lọc thư. Bộ lọc này có 4 tham số:

1 biểu thức chính quy Chỉ định một biểu thức chính quy - một mặt nạ được sử dụng để lọc thư.HH:mm:ss
2 sử dụngRawMsg Mặt nạ được áp dụng trong thư trước khi định dạng (true) hoặc sau khi định dạng (false)
3 onMatch Cách đăng nhập nếu điều kiện lọc là đúng . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.
4 onMismatch Làm thế nào để đăng nhập nếu điều kiện bộ lọc là sai . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.

Hãy thiết lập bộ lọc chỉ cho phép các thư có chứa từ codegym. Dưới đây là một ví dụ với cấu hình bộ lọc hoàn chỉnh:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log"   filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
        <RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
      </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>

5.4 Bộ lọc ngưỡng

Bộ lọc ThresholdFilter cho phép bạn định cấu hình lọc theo cấp độ thư. Nó chỉ có 3 tham số:

1 mức độ Đặt tên của cấp độ ghi nhật ký tin nhắn: ERROR, DEBUG, …
2 onMatch Cách đăng nhập nếu điều kiện lọc là đúng . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.
3 onMismatch Làm thế nào để đăng nhập nếu điều kiện bộ lọc là sai . Có thể ACCEPT, DENYhoặc NEUTRAL. mặc định NEUTRAL.

Hãy thiết lập một bộ lọc chỉ cho phép các tin nhắn ở cấp độ DEBUG. Dưới đây là một ví dụ với cấu hình bộ lọc hoàn chỉnh:


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
           <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>