2010-05-05 39 views
18

Tôi chỉ muốn giữ Nhật ký Truy cập trong n ngày qua được tạo bởi Van Đăng nhập Truy cập Tomcat. http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access%20Log%20ValveLàm thế nào để xóa Tomcat Access Log sau n ngày?

Nhưng dường như không có cấu hình-Thuộc tính để xác định khoảng thời gian lưu giữ tệp nhật ký? Tôi đoán điều này là do "Access Log Valve" chỉ tạo các tệp nhật ký và không xóa chúng, đúng không?

+0

vào hệ điều hành? – skaffman

+0

Windows Server R2 – Andreas

Trả lời

9

Theo mặc định rotatable là đúng cho Nhật ký truy cập, do đó bạn sẽ có tệp mới được tạo mỗi 24 giờ. Bản thân Tomcat không thực hiện bất kỳ dịch vụ dọn phòng nào trên các tệp cũ, nguyên tắc chung trên hệ thống Unix là phải thiết lập một công việc cron trên hệ thống để lưu trữ các tệp cũ thành thư mục sao lưu và/hoặc xóa chúng.

+0

Cảm ơn bạn đã trả lời. Bạn xác nhận giả định của tôi, rằng các tập tin cần phải được xóa bởi một cronjob (hoặc một kịch bản cơ bản trực quan trên cửa sổ). – Andreas

+0

Bạn xóa nhật ký cũ bằng cách nào? Tôi đã cố gắng để làm điều đó trên thời gian sửa đổi, nhưng trong một số trường hợp các tập tin đăng nhập đã được sửa đổi bởi quá trình khác/người sử dụng, và như vậy không bị loại bỏ trong thời gian ... – Guillaume

+0

Preety cũ nhưng, để lại câu trả lời cho câu hỏi nếu ai đó chạy vào lúc này. http://stackoverflow.com/questions/8962477/logrotate-files-with-date-in-the-file-name – OK999

3

Bạn có thể cố gắng tạo ra cấu hình logrotate:

#cat /etc/logrotate.d/tomcat 
/var/log/tomcat/*.log { 
     su tomcat tomcat 
     copytruncate 
     daily 
     rotate 6 
     compress 
     missingok 
} 

"su tomcat tomcat" - tôi nói thêm để tránh lỗi logrotate trên quyền sai

3

Đối với Windows, dựa trên câu trả lời Erwan trong Tomcat localhost_access_log files cleanup, cho cho thư mục và recursing vào tất cả các thư mục con:

forfiles /p "C:\path\to\httplogs\" /s /m *.log /d -10 /c "cmd /c del @PATH" 

Để kiểm tra, chỉ cần sử dụng:

01.235.
forfiles /p "C:\path\to\httplogs\" /s /m *.log /d -10 /c "cmd /c dir /b @PATH" 

Và khi có nhiều hậu tố trong thư mục log, giống như cả hai .txt.log, xem using FORFILES in batch to delete tmp and bak files older than a week:

for %%t in (.txt, .log) do forfiles /p "C:\path\to\httplogs\" /s /m *%%t /d -10 /c "cmd /c del @PATH" 
Các vấn đề liên quan