Có vẻ như câu hỏi này đã được hỏi nhiều lần. Nhưng tất cả các giải pháp tôi đã cố gắng (chủ yếu là chắc chắn rằng các tập tin log4j.properties là ở vị trí chính xác và nó gõ chính xác) không làm việc trong trường hợp của tôi.log4j: WARN Không tìm thấy appender nào cho logger - Sử dụng slf4j-log4j12
Tôi có dự án quạ. Tôi muốn sử dụng log4j cho các bài kiểm tra của mình. Lớp thử nghiệm sử dụng một phương thức trợ giúp được định nghĩa trong src/main/java, nơi mà trình ghi nhật ký được sử dụng.
Trong lớp helper của tôi (trong src/main/java /) Tôi đã nhập
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
và tôi đã khởi tạo các logger
private static final String TAG = Helper.class.getSimpleName();
private static final Logger logger = LoggerFactory.getLogger(TAG);
Tôi đã bao gồm cả trong src/main/resources và src/test/resources tệp log4j.properties sau đây
### set log levels - for more verbose logging change 'info' to 'debug' ###
### Also add logfile to the root, if need stdout then add stdout appender here###
log4j.rootLogger=debug, stdout
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd-mm HH:mm:ss,SSS} %p/%c{1}:%L - %m%n
Trong POM của tôi, tôi đã bao gồm sự phụ thuộc vào slf4j
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
Trong mã trong lớp helper của tôi, tôi sử dụng logger theo cách này
logger.debug("logger test...");
Không thông điệp được in trong giao diện điều khiển và tôi nhận được thông báo cảnh báo sau đây
log4j:WARN No appenders could be found for logger (Helper).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
gì tôi có bị mất không?
Cập nhật
Vấn đề này có liên quan đến một lựa chọn dự án mà bộ tài sản log4j.configuration để log4j-test.xml. Tôi đã thêm vào các plugin sau đây để dự án maven pom và điều này cố định vấn đề.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<systemPropertyVariables>
<log4j.configuration>log4j.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
Add '-Dlog4j.debug' đối số JVM để xem chính xác tệp cấu hình nào log4j đang chọn –