2012-01-30 45 views
6

Tôi cần một số đề xuất về ghi nhật ký SLF4J.SLF4J ghi vào tệp so với DB so với Solr

Hiện tại, chúng tôi đang sử dụng ghi nhật ký SLF4J (liên kết log4j) cho ứng dụng web Java của chúng tôi, ứng dụng này sử dụng ConsoleAppender đơn giản. Bước tiếp theo của chúng tôi là nghiên cứu các địa điểm mà chúng tôi có thể lưu nhật ký.

Quy trình ứng dụng của chúng tôi khoảng 100.000 thư mỗi ngày. Mỗi tin nhắn tạo ra khoảng 60 -100 dòng nhật ký. Mục tiêu của chúng tôi là có thể nhanh chóng tìm kiếm và tìm các thư thất bại (sử dụng một thông báoId) và xác định các nguyên nhân gây ra lỗi.

Câu hỏi của tôi là: nào dưới đây là một nơi tốt để lưu trữ các bản ghi của chúng tôi:

  • File (s)
  • DB
  • Solr

Cảm ơn.

Trả lời

11

Cân nhắc chuyển đổi khỏi log4j và sử dụng triển khai logback của slf4j API Logback có danh sách mở rộng là appenders.

Tôi nghĩ có lẽ câu hỏi của bạn liên quan nhiều hơn đến việc làm cho nhật ký của bạn có thể tìm kiếm được. Câu trả lời phụ thuộc vào những gì bạn đang tìm kiếm.

  • Đối với các ứng dụng đơn giản, tôi chỉ cần sử dụng một tập tin appender lăn và grep này cho các thông điệp Tôi quan tâm đến.
  • các ứng dụng phức tạp hơn sẽ bổ sung đăng nhập thông điệp đến các cơ sở dữ liệu.
  • Hiện không có ứng dụng Solr nào có sẵn cho log4j và logback. Tuy nhiên, bạn nên viết dễ dàng bằng cách sử dụng solrj API
  • Để theo dõi thông báo nhật ký, có lilith là GUI từ xa cho thông điệp nhật ký. Không biết nó có thể cân bằng như thế nào, nhưng nó thực sự thú vị cho các bản demo và giám sát đơn giản.

Cập nhật

Theo đề nghị của Sebastien đó cũng là một Graylog2 appender cho logback. Hiện có sẵn trong Maven Central

<dependency> 
    <groupId>me.moocar</groupId> 
    <artifactId>logback-gelf</artifactId> 
    <version>0.9.6p2</version> 
</dependency> 

Tất nhiên điều này sẽ phụ thuộc vào việc cài đặt máy chủ graylog2.

+1

Ngoài ra còn có Graylog nhưng tôi không nghĩ rằng nó quy mô rất tốt. –

+0

Tìm kiếm của chúng tôi sẽ đơn giản: messageId + "một số cụm từ tìm kiếm". Tôi sẽ nghiên cứu tùy chọn logback + DB. – scabbage

0

Không có cơ sở nào trong đặc tả servlet cung cấp cho bạn vị trí hệ thống tệp để đặt nhật ký.

Do đó, giải pháp lâu dài, mạnh mẽ nhất là chỉ cần sử dụng java.util.logging (với liên kết slf4j) và để cho thùng chứa web xử lý các nhật ký được tạo.

Bạn có khoảng 10 triệu mục nhập nhật ký pr ngày. Điều này có nghĩa là bạn cần phải cẩn thận với việc sử dụng tài nguyên. Giao tiếp cơ sở dữ liệu đắt hơn nhiều so với truy cập tệp. Tôi sẽ đề nghị bạn cấu hình các phương pháp tiếp cận để xem bạn có thể có được hiệu suất mà bạn cần phải xem xét bất cứ điều gì khác, nhưng các tập tin phẳng sao lưu trên cơ sở hàng đêm.

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