2012-08-10 19 views
6

Tôi tự hỏi tại sao tôi gặp lỗi này khi triển khai ứng dụng web của mình.Những lý do có thể có đằng sau "log4j: Lỗi Không thể tìm thấy giá trị cho khóa log4j.appender.SQL_APPENDER"

log4j: Error Could not find value for key log4j.appender.SQL_APPENDER 

Đây là tệp log4j.properties của tôi.

log4j.rootLogger=error, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

# Print the date in ISO 8601 format 
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=application.log 

log4j.appender.R.MaxFileSize=100KB 
# Keep one backup file 
log4j.appender.R.MaxBackupIndex=1 

log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER 
log4j.additivity.org.hibernate.SQL=false 

Tôi có phải thực hiện một số cấu hình ở phía máy chủ không? Tôi đang chạy ứng dụng của tôi trên một máy chủ Tomcat 7. Tôi thêm sự phụ thuộc này đến pom.xml file:

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.16</version> 
</dependency> 
+1

Những người khác ở trong tình trạng tương tự như tôi, nơi log4j.properties trông hoàn toàn tốt đẹp, hãy tìm phiên bản khác của log4j.properties ẩn ở đâu đó trên đường dẫn lớp. Tôi đã có một tập tin khác nhau (có lẽ để thử nghiệm) với các thiết lập sai và nó là thủ phạm. Mất một thời gian để nhận ra điều đó. – asgs

Trả lời

10

Bạn cần phải xác định log.appender.SQL_APPENDER, kể từ khi bạn gán nó trong dòng

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER 

Bạn đang định appender R nhưng không SQL_APPENDER

+0

Cảm ơn bạn SJuan, tôi thực sự không quen thuộc chút nào với các ứng dụng web, bạn có thể giải thích cho tôi cách xác định SQL_APPENDER không? – Rami

+1

Nó không phải là một vấn đề webapp nhưng một vấn đề cấu hình log4j. Cách dễ nhất là sao chép định nghĩa 'log.appender.R' thành' log.appender.SQL_APPENDER' (thay đổi 'FILE' thành một đích khác) – SJuan76

+0

Tuyệt vời! Cảm ơn Juan. – Rami

1

Như SJuan đã đề cập đến bạn cần xác định

log.appender.SQL_APPENDER

và đó được thực hiện một cái gì đó như thế này:

log4j.appender.SQL_APPENDER = org.apache.log4j.RollingFileAppender

và cũng có thể thêm trong khi bạn đang ở đó ...

log4j.appender.SQL_APPENDER.File = c: /EC_sql.log log4j.appender.S QL_APPENDER.MaxFileSize = 1000KB log4j.appender.SQL_APPENDER.MaxBackupIndex = 62 log4j.appender.SQL_APPENDER.layout = org.apache.log4j.PatternLayout log4j.appender.SQL_APPENDER.layout.ConversionPattern = [% d]% 5p [% t] (% F:% L) -% m% n

Hy vọng điều này sẽ giúp ai đó!