Lớp học có thể được truy cập từ nhiều chủ đề. Phải logger trong trường hợp này cũng là cuối cùng và tĩnh? Cảm ơn.Nên logger luôn luôn cuối cùng và tĩnh?
Trả lời
Tất cả các gói ghi nhật ký java chính (java.util.logging
, log4j
, v.v.) được đồng bộ hóa và an toàn luồng. Mẫu chuẩn của trình ghi nhật ký private final static
mỗi lớp là tốt ngay cả khi lớp được gọi từ nhiều luồng.
Có trình ghi nhật ký phải là tĩnh và cuối cùng. Cũng tốt hơn là riêng tư. Chỉ cần một cá thể logger cho mỗi lớp và cũng trừ khi bạn sẽ thay đổi tùy chọn log động, tốt hơn hết là làm cho nó trở thành cuối cùng.
Trình ghi là chủ đề an toàn và bạn không phải lo lắng về luồng.
Làm cho trình ghi nhật ký cuối cùng và hoặc tĩnh sẽ không ảnh hưởng đến an toàn luồng của việc sử dụng trình ghi nhật ký. Nếu cá thể nhật ký đang được sử dụng từ nhiều luồng hơn là đảm bảo bạn đang sử dụng trình ghi nhật ký an toàn.
Nói chung, trình ghi nhật ký phải là kết quả tĩnh riêng tư nhưng không cho rằng điều này làm cho luồng này an toàn. Hầu hết các khung công tác ghi nhật ký phổ biến là an toàn chỉ vì vậy nếu bạn đang sử dụng một trong các khung công tác này, bạn nên làm tốt.
- 1. LUÔN LUÔN trên cửa sổ trên cùng
- 2. Tôi có cần sử dụng luôn targetSdkVersion cuối cùng không?
- 3. ID Chèn Cuối cùng PDO luôn là đúng?
- 4. Khởi tạo biến toàn cục và biến tĩnh thành 0 luôn luôn là không cần thiết?
- 5. PyQt: Luôn ở trên cùng
- 6. Nếu tôi trở lại trong một thử/cuối cùng khối trong C# hiện các mã trong cuối cùng luôn luôn chạy?
- 7. Phương pháp tạo nhà máy luôn tĩnh?
- 8. Application.OpenForms.Count = 0 luôn luôn
- 9. textview.getLineCount luôn luôn 0 trong android
- 10. jQuery ajax() sử dụng thành công, lỗi và đầy đủ vs .done(), .fail() và luôn luôn()
- 11. carrierwave content_type luôn luôn nil
- 12. Giữ bàn phím luôn ở trên cùng và hiển thị
- 13. "Đối với tiền, luôn luôn thập phân"?
- 14. Có phải $ _SERVER ['REMOTE_ADDR'] luôn luôn đặt()?
- 15. Đối diện với "luôn ở trên cùng"
- 16. sẽ trật tự cho enum.values () luôn cùng
- 17. làm cho chuyển tiếp css3 xoay luôn luôn theo cùng một hướng
- 18. Tôi có nên luôn làm cho phương pháp của mình tĩnh khi có thể không?
- 19. Cách đặt 'luôn luôn-dưới-dưới'-cửa sổ
- 20. TTS đầu ra luôn luôn A2DP
- 21. Là sizeof (enum) == sizeof (int), luôn luôn?
- 22. BÀI ĐĂNG BÀI HÁT luôn luôn trống
- 23. ExecuteNonQuery() trả về -1 luôn luôn
- 24. Data.Set: nó luôn luôn biết tốt nhất?
- 25. Rails flash [: notice] luôn luôn nil
- 26. Ổ cắm trên web Chrome, luôn luôn đọc trên 0
- 27. Làm cách nào để công thức của tôi luôn tham chiếu đến trang tính cuối cùng?
- 28. GMaps v3 Markers addListener Bắt luôn chỉ số biến cuối cùng trong vòng lặp for
- 29. SQLite đọc luôn luôn đánh đĩa?
- 30. FileUpload.PostedFile luôn luôn rỗng bên trong UpdatePanel
Ví dụ về mã có thể giúp làm rõ câu hỏi. – Peter
Đồng thời xem bài đăng này để thảo luận thêm về thực tiễn tốt nhất này http://stackoverflow.com/questions/6653520/why-do-we-declare-loggers-static-final –
bạn có thể loại bỏ biến này nếu bạn sử dụng [jcabi-log] (http://www.jcabi.com/jcabi-log/), một trình bao bọc tĩnh xung quanh slf4j – yegor256