2009-09-10 19 views
9

Tôi có dòng sau trong file log4j.properties tôi:Cách cấu hình log4j của tôi (sử dụng Glassfish) để đăng nhập vào thư mục nhật ký, không phải trong cấu hình?

log4j.appender.logfile.File = MyApplication.log

log file của tôi xuất hiện trong thư mục/config mydomain, nhưng tôi muốn nó vào đất liền trong thư mục MyDomain/logs. Làm thế nào tôi có thể đạt được điều đó? Tôi không được phép sửa đổi kịch bản startserv.

Cảm ơn trước sự giúp đỡ của bạn!

Trả lời

0

Bạn cần phải xác định một đường dẫn tuyệt đối, không phải là một tương đối (giả sử đường dẫn Unix):

log4j.appender.logfile.File=/path/to/MyDomain/logs/MyApplication.log 
1

Sau đây là có thể trong Tomcat, có lẽ Glassfish thiết lập một môi trường tương tự như biến trỏ đến vị trí của nó hệ thống tập tin:

log4j.appender.logfile.File=${catalina.home}/logs/MyApplication.log 

${catalina.home} là thuộc tính môi trường/hệ thống do Tomcat đặt vào thư mục cài đặt của nó. Log4j có khả năng mở rộng chúng, ít nhất là trong PropertyConfigurer.

+4

Tốt hơn nên sử dụng catalina.base thay vì catalina.home, nó được yêu cầu nếu cài đặt tomcat của bạn được chia thành một phần chỉ đọc toàn cục và thư mục có thể ghi trên mỗi tomcat (nơi thư mục webapp và nhật ký). Nó xuất hiện (dựa trên googling) mà glassfish cũng xác định tài sản catalina.base. –

8

Thực tế, đó là log4j giải quyết biến $ {catalina.home}, Glassfish tuyên bố $ {catalina.home} là $ {com.sun.aas.instanceRoot} trỏ đến đường dẫn/đến/MyDomain/

Bạn có thể khai báo bất kỳ biến nào trong môi trường GF và đặt nó vào log4j.properties, log4j sẽ phân tích cú pháp chúng khi log4j được cấu hình.

Đó là thực sự hữu ích để thiết lập các thông số cấu hình đăng nhập nền máy chủ, sử dụng cùng một log4.properties cho thử nghiệm và triển khai

7

Bạn có thể đặt appender sử dụng $ {} com.sun.aas.instanceRoot, nhưng không giống như một số nhận xét khác cần phải có:

log4j.appender.logfile.File=${com.sun.aas.instanceRoot}/logs/MyApplication.log 

Đây là vị trí chính xác cho các nhật ký trong thư mục ../domains/domain{x}/logs.

+0

Lưu ý rằng tôi không thể làm việc này cho Apache Tomcat 5.5, nó chỉ dành cho Glassfish. –

+0

Điều này là dành cho thủy tinh. Và hiện tại, GF không hỗ trợ log4j. –

+0

Cảm ơn, điều này đã làm việc cho tôi trên Glassfish 3.1.1 – kpasgma

0

Vì trong GlassFish các vùng đất tập tin trong cấu hình và các bản ghi là anh chị em ruột của mình, thay vì

log4j.appender.logfile.File=MyApplication.log 

sử dụng

log4j.appender.logfile.File=../logs/MyApplication.log 

Thử nghiệm trên GlassFish 3.1.1 và nó hoạt động.

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