2017-01-04 11 views
7

Làm cách nào tôi có thể đặt đường dẫn ghi nhật ký liên quan đến thư mục tomcat /logs/mylog.log?Cách đặt tên tệp nhật ký của ứng dụng Spring và đăng nhập vào thư mục tomcat/logs?

gì tôi đã cố gắng: thay đổi logging.file tài sản trong application.properties

rời khỏi tên tập tin ra: #logging.file= -> tất cả mọi thứ được đăng nhập để an ủi, do đó ghi vào tomcat/logs/localhost.yyyy-mm-dd.log

logging.file=mylog.log -> ghi vào an ủi, như vậy giống như # logging.file

logging.file=d:/mylog.log -> ghi vào vị trí d: /mylog.log

logging.file=../logs/mylog.log -> được viết thành bảng điều khiển, do đó vẫn được lưu vào localhost * .log

Không thành công. Tôi không quan tâm đến việc định cấu hình bên ngoài ví dụ như bằng cách cung cấp các biến hệ thống hoặc môi trường.

+0

được bạn chỉnh sửa lửa gì? –

+0

tất cả các thuộc tính mùa xuân được cấu hình trong 'application.properties' – membersound

+0

có lẽ tôi không hiểu câu hỏi một cách chính xác nhưng những gì về vấn đề này:' logging.file = ../logs/mylog.log' – Patrick

Trả lời

3

tôi vừa tạo ra một ứng dụng đơn giản Spring-boot từ khởi động mùa xuân xây dựng như war tập tin. Tôi vừa sửa đổi này trong @SpringBootApplication lớp:

@SpringBootApplication 
public class LogApplication { 

    private static final Logger logger = Logger.getLogger(LogApplication.class); 

    public static void main(String[] args) { 
     SpringApplication.run(LogApplication.class, args); 
    } 

    @Controller 
    @ResponseBody 
    public static class IndexController{ 

     @RequestMapping("/") 
     public String getindex(){ 
      logger.error("Error Logging"); 
      return "Hello"; 
     } 
    } 
} 

Và tài sản trong application.properties này:

logging.file=../logs/mylog.log 

Xây dựng ứng dụng sử dụng maven mvn clean install và đặt các tập tin war bên webapps thư mục của tomcat. Bắt đầu sử dụng tomcat startup.bat và nhấn thành công điểm cuối http://localhost:8080/demo-0.0.1-SNAPSHOT.

Và nhật ký được viết trong logs/mylog.log:

enter image description here

2017-01-04 14:57:10.755 ERROR 8236 --- [http-apr-8080-exec-4] com.example.LogApplication    : Error Logging 
+0

Cảm ơn câu trả lời chi tiết. Sau đó, có lẽ đó là tomcat chính nó có một số cấu hình lạ gây ra một hành vi khác nhau đối với tôi. Sẽ báo cáo lại khi tôi tìm thấy nó. Trong khi đó tôi sẽ accecpt câu trả lời của bạn, như bạn đã chứng minh các giải pháp. – membersound

+0

Tôi không biết tại sao, nhưng tôi phải sử dụng đường dẫn sau đây: 'logging.file = log/mylog.log', nếu không thì "/ log" con đường được tạo ra trong thư mục trên của nhà tomcat, bên ngoài thư mục tomcat chinh no. – membersound

+0

@membersound lạ. Bạn không có bất kỳ tệp cấu hình ghi nhật ký nào khác như 'logback.xml' hoặc một cái gì đó khác trong ứng dụng của bạn? Hoặc có thể đặt 'logging.path' trong tập tin thuộc tính? – Patrick

3

Bạn có thể sử dụng biến môi trường để định cấu hình đường dẫn nhật ký.

Tomcat lập một catalina.home tài sản hệ thống mà bạn có thể sử dụng

log4j.rootCategory = DEBUG, errorfile

log4j.appender.errorfile.File = $ {} catalina.home/logs/LogFilename.log

Lưu ý: -

này có thể không làm việc Trên Debian (bao gồm Ubuntu), $ {} catalina.home sẽ không làm việc vì poin mà ts tại/usr/share/tomcat6 không có liên kết đến/var/log/tomcat6. Ở đây chỉ cần sử dụng $ {catalina.base}. Check this link

+0

Tôi không thể tận dụng biến môi trường, như tôi đã chạy nhiều 'file war' trong webserver tomcat giống nhau, và chỉ muốn thay đổi khai thác gỗ cho rằng ứng dụng cụ thể. một var envrn sẽ có tác động bất kỳ bài – membersound

0

Tôi sẽ phản hồi thứ hai của Tomz và chỉ cho bạn docs vì chúng cho bạn biết cách chuyển đổi từ logback sang log4j, điều này có thể dễ dàng hơn cho bạn.

Tôi thực sự khuyên bạn không nên triển khai Spring Boot trong các tệp chiến tranh, mà là các lọ chất béo thực thi. Nó làm cho mọi thứ dễ dàng hơn nhiều khi bạn có thể chỉ cần gõ này để kiểm tra cấu hình và triển khai nó:

java -jar my-service.jar /opt/my-service/conf/application.yml

+0

Vâng nhưng trong trường hợp của tôi, tôi không có lựa chọn và phải triển khai một cuộc chiến tranh. Đó là lý do tại sao tôi yêu cầu ... – membersound

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