2012-10-15 33 views
5

Tôi có một số vấn đề cụ thể với logback. Chúng tôi đã di chuyển từ log4j sang logback và tất cả dường như không sao, nhưng chúng tôi có một ngoại lệ MultiCauseException. Như bạn đã đoán - nó có thể có nhiều hơn một nguyên nhân ngoại lệ, do đó, vấn đề là: Tôi không thể định dạng theo cách thủ công stacktrace để xem tất cả các nguyên nhân.Logback - đầu ra tùy chỉnh cho ngoại lệ

Tại sao nó hoạt động. Log4j sử dụng phương thức printStackTrace() và bạn có thể ghi đè lên nó trong MultiCauseException và vấn đề đã biến mất. Nhưng logback sử dụng phương pháp của riêng mình và tôi không biết làm thế nào để thay thế chúng.

Tôi muốn ghi lại tất cả các nguyên nhân chính xác.

Trong lớp tôi có

MultiCauseException nextInChain; // my cause 
Throwable inner; 
     // the real exception (inner.getCause() can be != null - must be logged) 

@Override 
    public Throwable getCause() { 
     return nextInChain; 
    } 
+0

Bạn đang sử dụng phiên bản Logback nào? – fglez

+0

1.0.7 - mới nhất tại thời điểm – Edd

+0

Tôi quyết định làm cho ngăn xếp phù hợp "máy bay" (Bây giờ "gây ra bởi" không thực sự có nghĩa là nguyên nhân). Nhưng câu hỏi là không thực sự đóng cửa ... Vâng, tiếng Anh của tôi là khủng khiếp, xin lỗi về điều đó :) – Edd

Trả lời

1

Logback có cái gì gọi là Layouts được suppoesed các sự kiện định dạng chuỗi. Nhưng tôi vẫn tin rằng bạn có thể định cấu hình với PatternLayout

+0

Cảm ơn. Nhưng trong trường hợp này tôi cần phải sửa đổi tập tin cấu hình để thay thế bố trí standart cho riêng tôi. Và khi tôi thêm ngoại lệ của mình vào các lớp khác, tôi cần sửa đổi lại lần nữa. Đó là một gợi ý, nhưng sẽ tốt hơn nếu tôi chỉ có thể sửa đổi lớp MultiCauseException (hoặc thêm một cái gì đó, nhưng một lần) – Edd

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