2012-09-17 20 views
11

Tôi đang sử dụng slf4j để đăng nhập vào Ứng dụng Java của mình. Nó liên quan đến việc đăng nhập rất nhiều và theo dõi nhật ký.
Đôi khi thực sự khó đọc và tìm thông tin từ nhật ký khi toàn bộ nhật ký được in bằng màu đen.
Chỉ để làm cho nó dễ đọc hơn, có thể ghi lại các loại thông điệp khác nhau bằng các màu khác nhau không?
Ví dụ: tất cả các thông báo mức Lỗi trong màu đỏ hoặc kích thước phông chữ khác nhau và tất cả các thông báo mức Thông tin có màu xanh dương và kích thước phông chữ khác nhau.
Định dạng slf4j để ghi lại các loại tin nhắn với màu sắc

Bất kỳ đề xuất hoặc trợ giúp nào đều được hoan nghênh. Thnx.

+0

Có lẽ nó sẽ giúp nếu bạn đặt Tên của IDE you'r. Và bạn có thể hỏi cách ánh xạ tới Stderr thay vì Stdout cho các thông báo lỗi. – d0x

+0

Tệp nhật ký là một tệp văn bản thuần túy. Không có khái niệm về màu sắc. Tuy nhiên, bạn có thể tìm thấy thứ gì đó để xem nhật ký có thể mã màu cho bạn ... – GreyBeardedGeek

Trả lời

3

Hai giải pháp đến với tâm trí của tôi. Chúng không phải màu sắc mà là các giải pháp thay thế:

  1. Trong cấu hình Trình cài đặt tệp, bạn có thể định cấu hình để bao gồm cấp nhật ký (lỗi, cảnh báo, v.v.). Sau đó, bạn có thể grep tệp, để lọc thư theo cấp độ.

  2. Bạn có thể định cấu hình hai ứng dụng tệp (cho hai tệp nhật ký riêng biệt) với ngưỡng cấp khác nhau. Ví dụ, người ta sẽ ghi lại tất cả các bản ghi trên mực nước debug (vì vậy thông tin, cảnh báo, lỗi) vào giả sử logs.txt và người kia sẽ đăng nhập chỉ các lỗi đăng nhập vào ERRORS.TXT

Hy vọng nó giúp.

1

Không thể thay đổi màu của slf4j ghi nhật ký, vì không có trình định dạng. SLF4J là phần mềm trung gian giữa ứng dụng của bạn và một số cơ sở ghi nhật ký, ví dụ: Log4j hoặc Logback.

Bạn có thể thay đổi màu trong đầu ra Log4j, như được giải thích here. Tôi khuyên bạn nên sử dụng MulticolorLayout từ jcabi-log

+0

Cảm ơn bạn đã trả lời, nhưng tất cả các đề xuất của bạn là để nhận được kết quả màu trong bảng điều khiển. Vì tôi cần thu thập các tệp nhật ký từ nhiều hệ thống và phân tích chúng, nên tôi cần các tệp nhật ký được tô màu. – Panshul

+0

"tệp nhật ký có màu"? hm ... :) – yegor256

2

Điều bạn cần phải lưu ý.

Đầu tiên, SLF4J chỉ là mặt tiền ghi nhật ký. Cách thông điệp nhật ký thực tế được xử lý phụ thuộc vào sự ràng buộc mà nó được sử dụng. Do đó, câu hỏi của bạn không hợp lệ, thay vào đó, bạn nên báo cáo triển khai nào bạn muốn sử dụng (LogBack? Log4J? Etc)

Thứ hai, "Tô màu" không phải là điều có ý nghĩa trong hầu hết trường hợp. Ví dụ, nếu bạn đang giới thiệu một tệp nhật ký văn bản thuần túy, chúng tôi không thể kiểm soát màu vì chúng đều là văn bản thuần túy (trừ khi trình soạn thảo của bạn có cú pháp đặc biệt được tô sáng cho định dạng thông điệp tường trình của bạn). Điều này có thể có ý nghĩa nếu bạn muốn xem màu trong bảng điều khiển/thiết bị đầu cuối hoặc nếu bạn xuất nhật ký của mình thành định dạng tệp cho phép bạn chứa thông tin màu (ví dụ: HTML).

Với hai ý tưởng này, đây là đề xuất của tôi.

LogBack có hỗ trợ tích hợp để tô màu http://logback.qos.ch/manual/layouts.html#coloring trong đầu ra bàn điều khiển. Nếu bạn đang tìm cách để xem màu trong đầu ra bàn điều khiển, và bạn được phép sử dụng LogBack, đây là những gì bạn đang tìm kiếm.

+0

Cảm ơn bạn đã trả lời, nhưng tôi đang sử dụng Log4j và tôi cần thu thập các tệp nhật ký từ các hệ thống khác nhau và phân tích chúng .. vì vậy không sử dụng được đầu ra màu trong bảng điều khiển. Tôi cần màu sắc trong tệp nhật ký .. nhưng cảm ơn bạn đã đề xuất, tôi sẽ thử đầu ra HTML. – Panshul

+0

Nếu bạn có thể viết một tệp văn bản thuần túy với màu bên trong, thì bạn có thể mong đợi điều đó. Tuy nhiên, nó là cái gì đó là không thể thực hiện được. Bạn có thể viết trình xem của riêng bạn để phân tích thông điệp tường trình của bạn và thực hiện định dạng và hiển thị cho bạn. Tôi đặt cược nếu bạn sẵn sàng làm như vậy. Sử dụng HTML cộng với một số CSS có thể là cách để đi cho bạn. –

1

Tôi sử dụng bộ lọc cho cả cấp độ đăng nhập và gói. Ví dụ này xuất phát từ ứng dụng khởi động Spring.tính

logging.level.root=warn 
    logging.level.org.springframework=warn 
    logging.level.org.hibernate=warn 
    logging.level.org.starmonkey.brown=DEBUG 

Bằng cách này tôi chỉ thấy thông điệp tôi muốn xem

+0

Cảm ơn !!! Nó làm việc cho tôi! Tôi đã googling cho một vài giờ cho 'org.slf4j.Logger' trước khi tìm thấy nó. Nó chỉ ra rằng nó có liên quan đến cài đặt khởi động mùa xuân, không phải để slf4j logger. Cảm ơn một lần nữa! – abguy

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