2011-12-02 25 views
6

Tôi đã định cấu hình ghi nhật ký trong ứng dụng Khung Play của mình. Khi tôi chạy ứng dụng trong chế độ prod hoặc dev hoặc chạy thử bằng comand (play test) - mọi thứ hoạt động tốt, nhưng kiểm tra không thể thực thi khi tôi chạy 'play auto-test' của chúng. Hãy giúp tôi!Đăng nhập cấu hình trong Play Framework khi bắt đầu tự động kiểm tra

trong application.conf:

application.log=INFO 
application.log.path=/log4j.xml 

log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="File" value="${application.path}/logs/application.log"/> 
     <param name="MaxFileSize" value="1MB"/> 
     <param name="MaxBackupIndex" value="100"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p ~ %m %n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="error"/> 
</logger> 
<root> 
    <priority value="error"/> 
    <appender-ref ref="file"/> 
</root> 
</log4j:configuration> 

Khi tôi sử dụng các tập tin log4j.xml sau:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="debug"/> 
</logger> 
<root> 
    <priority value="info"/> 
    <appender-ref ref="console"/> 
</root> 
</log4j:configuration>  

kiểm tra chạy lệnh 'chơi tự động kiểm tra 'được thực hiện thành công. Vui lòng cho biết cách đăng nhập cấu hình trong Play (đầu ra vào tệp) chạy và thực thi các kiểm tra trong 'play auto-test'!

Trả lời

1

Thi là khá nhiều Play! lỗi. Nó không phải do thực tế rằng bạn đã cấu hình log4j với một tập tin riêng biệt, mặc dù làm điều đó sẽ ẩn một thông báo lỗi: "play.tmp là null khi nó nên được play.tmp = none" (một cái gì đó để thích này - bạn ' sẽ nhận được điều này nếu bạn loại bỏ tệp initon log4j.xml và làm lại "play auto-test"). Vấn đề là ngay cả khi bạn đặt nó thành play.tmp = none nó vẫn sẽ không hoạt động. Bên cạnh đó, nếu bạn so sánh tài liệu trực tuyến của họ để chơi 's đầu ra giao diện điều khiển, bạn sẽ đã nhận ra rằng sai một cái gì đó của:

Các tài liệu nói:

"The '! Auto-test' lệnh làm như vậy hơn' thử nghiệm 'lệnh, nhưng nó sẽ tự động khởi động một trình duyệt, chạy tất cả các bài kiểm tra, và dừng lại. "

điều khiển sais (khi bạn làm "chơi auto-test"):

ATTENTION: You're running Play! in DEV mode 
~ 
~ Go to http://localhost:9000/@tests to run the tests 
~ 
1

Câu trả lời rất đơn giản

trong application.conf:

%test.application.log=INFO 
%test.application.log.path=/log4j.xml 

application.log=INFO 
application.log.path=/log4j.properties 
application.log.system.out=off 

log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="debug"/> 
</logger> 
<root> 
    <priority value="info"/> 
    <appender-ref ref="console"/> 
</root> 
</log4j:configuration> 

log4j.properti es:

log4j.rootLogger=ERROR, Rolling 
log4j.logger.play=INFO 
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender 
log4j.appender.Rolling.File=${application.path}/logs/application.log 
log4j.appender.Rolling.MaxFileSize=1MB 
log4j.appender.Rolling.MaxBackupIndex=100 
log4j.appender.Rolling.layout=org.apache.log4j.PatternLayout 
log4j.appender.Rolling.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n 
+1

Xin chào Ivan, chào mừng bạn đến với stackoverflow. Việc trả lời các câu hỏi của riêng bạn không phải là sai, đặc biệt nếu bạn nghĩ ai đó có lợi từ họ. Tuy nhiên, bạn có thể nhanh chóng tóm tắt những gì bạn đã làm không? Chúng tôi chỉ là những người chết và không đọc XML làm ngôn ngữ cơ sở của chúng tôi. Bạn có hai tệp cấu hình Apache, một tệp XML và một tệp định dạng thuộc tính và một tệp sai đã được chọn không? –

Các vấn đề liên quan