JavaRush /Blog Java /Random-VI /Chúng tôi kết nối ghi nhật ký với dự án JavaRush của chún...
Дмитрий Яковенко
Mức độ
Москва

Chúng tôi kết nối ghi nhật ký với dự án JavaRush của chúng tôi (slf4f và log4j)

Xuất bản trong nhóm
Bạn có thể đọc cách kết nối Maven với dự án JavaRush trong bài viết này của tôi . Phần sau đây giả định rằng bạn biết cách thực hiện việc này. Nếu muốn sử dụng slf4j thì chúng ta cần có một phần phụ thuộc:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Sau này chúng tôi làm:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Và chúng tôi nhận được lỗi:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Nói chung là hợp lý. slf4j là một trình bao bọc, nhưng chúng ta đã bọc nó xung quanh cái gì? Không có gì? Vâng, chúng tôi đã gặp lỗi. Bạn có thể gói nó quanh một trong những thứ sau: log4j, util.logging, NOP, System.err, JCL, logback. Thêm chi tiết trong hướng dẫn ban đầu . Hãy xem ví dụ về log4j và System.err: 1) Hãy bắt đầu với điều gì đó đơn giản, với System.err . Để thực hiện việc này, hãy thêm cái này (slf4j-simple) vào phần phụ thuộc trước đó (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Chúng tôi lấy các phiên bản tương tự, tính đến ngày 10 tháng 5 năm 2021 là 1.7.30. Nếu bạn lấy phụ thuộc từ https://mvnrepository.com/ , đừng quên xóa
<scope>test</scope>
Nếu không, nhật ký của bạn sẽ chỉ hoạt động trong các thử nghiệm. 2) Bây giờ hãy thử định cấu hình log4j , để làm được điều này, chúng ta cần thêm 2 phần phụ thuộc: chính log4j và một lớp giữa slf4j và log4j (slf4j-log4j12). Nó trông như thế này:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
Rõ ràng là chúng ta cần loại bỏ (slf4j-simple) để slf4j không bị nhầm lẫn về việc nó sẽ hoạt động với logger nào. Và để lại (slf4j-api), vì đây là slf4j. Về 2 phụ thuộc được thêm vào. log4j chúng tôi đang thêm cái cũ (từ tháng 5 năm 2012, tôi không biết tại sao, bạn có thể thử nghiệm với những người khác). Phiên bản của nó là 1.2.17. Để slf4j hoạt động với nó, bạn cần một lớp thích hợp - slf4j-log4j12, trong đó các ký tự cuối cùng (12) có nghĩa là phiên bản log4j. Trong trường hợp này, phiên bản của slf4j-api và slf4j-log4j12 phải là 1.7.30 - phiên bản ổn định mới nhất vào thời điểm hiện tại. Sau khi bạn đã kết nối các phần phụ thuộc và cập nhật dự án Maven. Để log4j hoạt động, bạn cần thêm 2 thứ: 1) Thiết lập tệp cấu hình. Chúng tôi đọc, chọn, sao chép. 2) Đọc cấu hình log4j trước khi làm việc:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Vâng, hoặc nơi bạn có tập tin. Nếu bạn muốn xem tất cả nhật ký, đừng quên đặt mức ghi nhật ký thành TẤT CẢ. Chúng tôi thêm vào sơ yếu lý lịch - log4j & slf4j. Bạn thật lộng lẫy! Nếu nó hữu ích - thích, đăng ký, chuông!)))
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION