2012-11-22 47 views
5

Tôi đang cố gắng để nhận các logger cho lớp học của tôi:Làm thế nào để có được logger của một lớp trong một bối cảnh tĩnh?

public static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(this); 

Nhưng sử dụng "này" có gây ra "Không thể sử dụng điều này trong một bối cảnh tĩnh" lỗi.

Bất kỳ ai biết cách sửa lỗi này?

CHỈNH SỬA: Tôi phải có thể truy cập trình ghi nhật ký từ tất cả các lớp trong chương trình của mình, do đó, phải là công khai.

+0

Bạn đang sử dụng Log4J hoặc 'java.util.logging' (gói« Logger' »là gì? –

+0

@TomaszNurkiewicz Tôi đã sử dụng 'java.util.logging'. Đã chỉnh sửa bài đăng của tôi ngay bây giờ để làm rõ điều đó. –

Trả lời

9

Thông báo tôi đã thay đổi modifier public-private:

public class FooBar { 

    private static final Logger log = Logger.getLogger(FooBar.class); 

    //or (if you are using java.util.logging): 

    private static final Logger log = Logger.getLogger(FooBar.class.getName()); 


} 
+1

checkstyle: Vui lòng viết nhật ký bằng chữ "LOG" – AlexWien

+0

@AlexWien: tốt, thực ra tôi thích chữ nhỏ hơn, nhưng tôi hiểu tại sao chúng ta nên sử dụng 'LOG' (in thủ đô). –

+0

1 bình chọn cho các bình luận của java.util.logging – AlexWien

6

Đối org.appache.log4j:

private static final Logger LOG = Logger.getLogger(MyClass.class); 

Đối java.util.logging

private static final Logger LOG = Logger.getLogger(MyClass.class.getName()); 
+0

Lưu ý rằng anh ta rõ ràng đang sử dụng 'java.util.logging' không chấp nhận' Lớp' làm đối số, chỉ có Strings –

+0

Tại sao bạn nghĩ rằng anh ta đang sử dụng java.util.Logging; Hầu hết sử dụng org.appache Log4j – AlexWien

+0

Nó không phải là ở tất cả rõ ràng rằng ông đang sử dụng java.util.logging – Perception

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