2011-08-22 18 views
5

Tôi hiện đang phát triển một ứng dụng web đơn giản bằng Eclipse và máy chủ Tomcat 7 cục bộ. Tôi đã cấu hình Eclipse để tôi có thể khởi động Tomcat 7 ngay trên IDE của mình - không có nhiều phép thuật ở đây.Trường hợp đi đăng nhập của tôi tập tin của webapp của tôi trên một cài đặt Linux Tomcat 7?

Trong ứng dụng web của tôi, tôi sử dụng SLF4J với Logback, trông như thế này trong một lớp dịch vụ:

public class MyServiceImpl implements MyService 
{ 
    private static Logger logger = LoggerFactory.getLogger(MyServiceImpl.class); 

    public void doSomeStuff() 
    { 
     logger.info("Doing some stuff"); 
    } 
} 

đăng nhập của tôi được cấu hình theo cách này:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>log/MyTestWebApp.%d.log.zip</fileNamePattern> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="com.test" level="WARN" /> 

    <root level="WARN"> 
     <appender-ref ref="fileAppender" /> 
    </root> 

</configuration> 

Khi tôi bắt đầu web của tôi ứng dụng và do đó máy chủ Tomcat 7 địa phương, đầu ra ghi nhật ký đi tới

./log/MyTestWebApp.log 

như mong đợi, nơi mà ent thư mục là nơi ứng dụng web của tôi là (ví dụ, nơi pom.xml Maven của tôi là).

Khi tôi khởi động ứng dụng web trên máy Linux từ xa, tôi không thể tìm thấy bất kỳ tệp "MyTestWebApp.log" nào, không phải trong directoy của ứng dụng web của tôi, cũng như trong thư mục gốc Tomcat7.

Vì vậy, câu hỏi đơn giản của tôi là, các nhật ký đó xuất hiện ở đâu và tệp "MyTestWebApp.log" của tôi tương ứng ở đâu?

Cảm ơn rất nhiều sự giúp đỡ của bạn!

+1

nếu nó hoạt động trên máy tính địa phương của bạn, nhưng không xa, sau đó bạn có thể muốn kiểm tra các đặc quyền của tập tin, thư mục vv – Will

+0

Cảm ơn câu trả lời của bạn, xin vui lòng xem bình luận của tôi dưới đây để bài của palacsint, tôi tìm thấy logfile của tôi trong "Tomcat/bin/log/*" thư mục. –

Trả lời

4

Tệp nhật ký nằm bên trong thư mục khởi động của Tomcat. Bạn có thể nhận được thư mục này bằng lệnh này:

grep -az "\bPWD" /proc/TOMCAT_PID/environ 
+0

Cảm ơn câu trả lời của bạn. Tôi tìm thấy tệp nhật ký của mình trong thư mục "Tomcat/bin/log/*" của tôi. Vâng, tôi không nghĩ rằng đây là một con đường chính xác cho các tập tin đăng nhập :) Có cách tiếp cận phổ biến làm thế nào để cấu hình hệ thống, do đó, logfiles đang đi vào đúng nơi (những gì bao giờ này là)? –

+2

Như tôi thấy có hai cách: đặt đường dẫn tuyệt đối trong logback.xml của bạn hoặc đảm bảo rằng Tomcat luôn được bắt đầu từ thư mục thích hợp. Tôi thường sử dụng các đường dẫn tuyệt đối và tạo ra các cuộc chiến sản xuất với một hồ sơ maven để lọc tài nguyên trên logback.xml và đặt các đường dẫn tuyệt đối vào nó. – palacsint

3

Bạn đã kiểm tra quyền trong thư mục tomcat7 chưa? I E. ai sở hữu/var/lib/tomcat7? Đôi khi một cài đặt sẽ làm cho thư mục này thuộc sở hữu của root, không cho phép người dùng Tomcat7 tạo một thư mục 'log' ở đó ngay từ đầu.

Để khắc phục nó, chỉ cần

sudo chown tomcat7:tomcat7 /var/lib/tomcat7 

Hy vọng nó giúp, Sekm