Làm cách nào để viết tắt/rút ngắn tên gói trong nhật ký được tạo bằng log4j. tức là thay vì com.longpackage.anotherpackage.lastpackage.MyClass
tôi muốn c.l.a.l.MyClass
. Tôi đã thấy điều này trong Artifactory nhật ký, nhưng không thể tìm cách đạt được điều này bằng cách sử dụng log4j.log4j: viết tắt/rút ngắn tên gói
Trả lời
Nó chỉ ra rằng đây là có thể sử dụng log4j sau khi tất cả (thử nghiệm sử dụng v1.2.16), nhờ Tomasz Nurkiewicz chỉ cho tôi đến LogBack. Tính năng, ConversionWord, có sẵn bằng cách sử dụng bố cục EnhancedPatternLayout.
Từ javadoc
... For example, for the category name "alpha.beta.gamma" the pattern %c{2} will output the last two elements ("beta.gamma"), %c{-2} will remove two elements leaving "gamma", %c{1.} will output "a.b.gamma" ...
Tôi đang sử dụng JBoss và phải nâng cấp log4j và sử dụng bố trí ở trên.
Ví dụ: 'log4j.appender.stdout.layout = org.apache.log4j.EnhancedPatternLayout log4j.appender.stdout.layout.ConversionPattern =% - 5p% c {1.} [% T]:% m% n' – felvhage
Mã Java đằng sau "ConversionWord" của logback/LoggerConverter là lớp TargetLengthBasedClassNameAbbreviator: https://github.com/qos-ch/logback/blob/master/logback-classic/src/main/java/ch/qos/ logback/classic/pattern/TargetLengthBasedClassNameAbbreviator.java. – buzz3791
Artifactory sử dụng Logback:
Các dự án nổi tiếng dựa vào logback:
[...]
Artifactory
trong đó có tính năng tuyệt vời này được gọi là Conversion Word:
Conversion specifier | Logger name | Result
%logger | mainPackage.sub.sample.Bar | mainPackage.sub.sample.Bar
%logger{0} | mainPackage.sub.sample.Bar | Bar
%logger{5} | mainPackage.sub.sample.Bar | m.s.s.Bar
%logger{10} | mainPackage.sub.sample.Bar | m.s.s.Bar
%logger{15} | mainPackage.sub.sample.Bar | m.s.sample.Bar
%logger{16} | mainPackage.sub.sample.Bar | m.sub.sample.Bar
%logger{26} | mainPackage.sub.sample.Bar | mainPackage.sub.sample.Bar
* Tôi nhớ bảng trong SO markdown sooo nhiều ...
Đẹp! "Từ chuyển đổi" là những gì tôi đã sau. – asgs
Có vẻ như bạn cần phải thực hiện của riêng bạn Appender
để làm công việc này trong log4j.
- 1. Log4j chương trình gói tên
- 2. Tên lớp khung ngắn nhất (bao gồm gói) là gì?
- 3. Tên tệp có ngày trong Log4j
- 4. log4j: ERROR Không thể đổi tên
- 5. Có cách viết ngắn `{| x | x} `?
- 6. Làm thế nào để thêm slf4j vào gói log4j pom.xml?
- 7. cách bật tính năng ghi nhật ký gói trong log4j
- 8. Tên biến Lambda - viết tắt tên hoặc không viết tắt tên?
- 9. Sử dụng Log4J 1. *, làm thế nào tôi có thể viết hai gói cho hai tệp riêng biệt?
- 10. PHP & SQL Server - tên trường rút ngắn
- 11. android, cách lấy tên gói?
- 12. javadoc không tên gói
- 13. Log4j ghi tên người dùng bảo mật mùa xuân
- 14. Dạng viết ngắn hơn jQuery $ (tài liệu) .ready function
- 15. cách ngắn để viết bộ mã hóa ưu tiên VHDL
- 16. Dễ dàng viết các Gói trong Cocoa
- 17. Viết các ràng buộc và đóng gói
- 18. Bí danh/Rút ngắn không gian tên trong .NET
- 19. Gói chứa đối tượng và gói có cùng tên
- 20. gói Đổi tên trong Eclipse
- 21. Java ước gói đặt tên
- 22. Quy ước tên gói Python
- 23. Grails/Groovy log4j - Ghi lại số dòng, tên phương thức và tên lớp
- 24. Viết các gói Python với nhiều mô-đun C
- 25. liên kết log4j
- 26. Cách tạo tên tệp ngắn cho ảnh đã tải lên?
- 27. 'tên ngắn' cho các ứng dụng iOS có thể?
- 28. Gói (BPL) Suffix đặt tên tự động
- 29. Log4j, patternLayout, lớp và loại
- 30. Android: Nhận tên ứng dụng (không gói tên)
Nhưng nếu bạn không đọc qua tên gói dài, bạn có thực sự đang làm Java không? Bạn có thực sự nhận được toàn bộ Java Experience® không? Nghiêm túc, mặc dù câu hỏi hay. – andronikus