2010-11-05 3 views
15

Tôi đang cố gắng ghi lại tất cả các thông báo DEBUG vào bàn điều khiển trong khi thử nghiệm trong maven. Vì mục đích này, tôi đã tạo một tệp src/test/resources/log4j.properties, sẽ ghi đè lên cấu hình mà tôi đã có trong src/main/resources/log4j.properties. Thật không may như một trọng tài không xảy ra. Tại sao và làm thế nào để sửa chữa nó?Cách ghi đè log4j.properties trong khi thử nghiệm?

+0

nó sẽ hoạt động. ;) – Bozho

+1

@Bozho Tôi cũng nghĩ như vậy, nhưng có vẻ như hai cuộc xung đột tệp này. Khi tôi có hai cấu hình ghi nhật ký KHÔNG hoạt động. Cả hai đều bị bỏ qua ... – yegor256

+0

Tôi nghĩ maven chỉ bao gồm cả hai tài nguyên trong đường dẫn, do đó, log4j bị nhầm lẫn mà một trong những sử dụng và thay vì chỉ thất bại bởi không hiển thị bất cứ điều gì. Giải pháp của Robert có hiệu quả không? –

Trả lời

3

Nó sẽ hoạt động như hiện tại và hoạt động. Vấn đề là ở một nơi khác.

ps. Tôi đã có một mớ hỗn độn với logger trong classpath của tôi: jog4j, slf4j, logback (từ các phụ thuộc khác). Theo tôi hiểu, tất cả đều xung đột. Tôi chưa dọn dẹp đống lộn xộn này, và tôi vẫn không biết cách làm cho tất cả các gói sử dụng một cơ sở ghi nhật ký và một cấu hình.

+1

viết chính xác những gì – Bozho

+1

Làm thế nào mà bạn không làm sạch mớ hỗn độn. không biết làm thế nào để làm cho tất cả họ làm việc cùng nhau và nhận được câu trả lời đúng? –

26

Đổi tên tệp cấu hình thử nghiệm của bạn thành ví dụ: log4j-surefire.properties và định cấu hình log4j để nhặt nó trong khi thực hiện chắc chắn:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <systemPropertyVariables> 
      <log4j.configuration>file:${project.build.testOutputDirectory}/log4j-surefire.properties</log4j.configuration> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 
+0

Tôi đã bỏ phiếu cho câu trả lời của bạn, cảm ơn rất nhiều vì nó. Thật không may, nó không phải là hữu ích trong trường hợp của tôi, vì vấn đề không phải là với vị trí của tập tin, nhưng của 'log4j' sử dụng cùng với' slf4j'. – yegor256

+1

Phải. Sau đó, bạn nên đăng câu trả lời của bạn và chấp nhận nó. –