2012-02-09 12 views
5

Tôi đang cố định cấu hình tomcat của mình thành các tệp nhật ký di chuột qua khi đạt đến giới hạn kích thước. Tôi đang chạy tomcat như một cửa sổ dịch vụ và đang chuyển hướng tất cả các stdout của tôi để catalina.log. Đây là cách tôi đã định cấu hình bằng logging.properties để đặt giới hạn kích thước. Nhưng nó không hoạt động.Cách cấu hình tomcat để di chuyển các tập tin catalina.log

logging.properties

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 

############################################################ 
# Handler specific properties. 
# Describes specific configuration info for Handlers. 
############################################################ 

1catalina.org.apache.juli.FileHandler.level = FINE 
1catalina.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001 
1catalina.org.apache.juli.FileHandler.prefix = catalina. 
1catalina.org.apache.juli.FileHandler.limit = 100000 # size 100kb 
1catalina.org.apache.juli.FileHandler.count = 5 


2localhost.org.apache.juli.FileHandler.level = FINE 
2localhost.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001 
2localhost.org.apache.juli.FileHandler.prefix = localhost. 

3manager.org.apache.juli.FileHandler.level = FINE 
3manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001 
3manager.org.apache.juli.FileHandler.prefix = manager. 

4host-manager.org.apache.juli.FileHandler.level = FINE 
4host-manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001 
4host-manager.org.apache.juli.FileHandler.prefix = host-manager. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 


############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler 

# For example, set the com.xyz.foo logger to only log SEVERE 
# messages: 
#org.apache.catalina.startup.ContextConfig.level = FINE 
#org.apache.catalina.startup.HostConfig.level = FINE 
#org.apache.catalina.session.ManagerBase.level = FINE 
#org.apache.catalina.core.AprLifecycleListener.level=FINE 

Nhưng 1catalina.org.apache.juli.FileHandler.limit = 100000 dường như không được làm việc

+0

Tại sao bạn sẽ thậm chí viết bất cứ điều gì đến stdout trong một ứng dụng web ?! Điều này sẽ giết hiệu suất của bạn nếu bạn nhận được bất kỳ loại tải để nói chuyện. Bạn không thể sử dụng log4j hoặc một số thư viện đăng nhập khác? – Olaf

+0

Bởi vì, khi chạy tomcat như một dịch vụ, các thông báo bàn điều khiển sẽ trực tiếp đến stdout.log. – Srinivas

+0

Có anyway tôi có thể xoay stdout.log atlease – Srinivas

Trả lời

8

org.apache.juli.FileHandler không hỗ trợ luân chuyển dựa trên kích thước tập tin và thực hiện không có thuộc tính limitcount bạn đang cố gắng đặt (see docs). Thay vào đó, bạn có thể sử dụng Java java.util.logging.FileHandler chuẩn hỗ trợ xoay vòng dựa trên kích thước. Bạn nên thay đổi những dòng sau trong cấu hình của bạn:

handlers = 1catalina.java.util.logging.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 

.handlers = 1catalina.java.util.logging.FileHandler, java.util.logging.ConsoleHandler 

Cũng lưu ý rằng Java FileHandler được cấu hình hơi khác biệt so với Tomcat FileHandler

1catalina.java.util.logging.FileHandler.level = FINEST 
1catalina.java.util.logging.FileHandler.pattern = <your log dir>/catalina%g.log 
1catalina.java.util.logging.FileHandler.limit = 100000 
1catalina.java.util.logging.FileHandler.count = 5 
1catalina.java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter 

Tuy nhiên, tôi không chắc chắn rằng chuyển hướng tiêu chuẩn ra đến tập tin được viết bởi logger sẽ hoạt động tốt và giúp bạn đạt được những gì bạn muốn.

1

Theo Official Tomcat 7 documentation:


public class FileHandler kéo dài java.util.logging.Handler

Thực hiện Handler mà gắn thêm đăng các tin nhắn đến một file có tên {prefix} {date} {suffix} trong thư mục được định cấu hình.

Các thuộc tính cấu hình sau đây có sẵn:

  • thư mục - Thư mục nơi để tạo ra các tập tin đăng nhập. Nếu đường dẫn không tuyệt đối, nó tương đối so với thư mục làm việc hiện tại của ứng dụng. Các tập tin cấu hình Apache Tomcat thường chỉ định một đường dẫn tuyệt đối cho điều này bất động sản, $ {} catalina.base/nhật ký Giá trị mặc định: các bản ghi

  • xoay - Nếu đúng, các file log sẽ được luân chuyển trên ghi đầu tiên qua nửa đêm và tên tệp sẽ là {prefix} {date} {suffix}, trong đó ngày là yyyy-MM-dd. Nếu sai, tệp sẽ không được xoay và tên tệp sẽ là {prefix} {suffix}. Giá trị mặc định: đúng

  • Tiền tố

    - Phần đầu của tên tệp nhật ký. Giá trị mặc định: juli.

  • hậu tố - Phần đuôi của tên tệp nhật ký. Giá trị mặc định: .log

  • bufferSize - Định cấu hình bộ đệm. Giá trị 0 sử dụng bộ đệm mặc định hệ thống (thường là bộ đệm 8K sẽ được sử dụng). Giá trị buộc một người viết tuôn ra mỗi lần ghi nhật ký.Giá trị> 0 sử dụng BufferedOutputStream với giá trị đã xác định nhưng lưu ý rằng hệ thống đệm mặc định cũng sẽ được áp dụng. Giá trị mặc định: -1

  • mã hóa - Bộ ký tự được sử dụng bởi tệp nhật ký. Giá trị mặc định: chuỗi rỗng, có nghĩa là sử dụng bộ ký tự mặc định của hệ thống.

  • cấp - Ngưỡng cấp cho Trình xử lý này. Xem lớp java.util.logging.Level cho các mức có thể. Giá trị mặc định: TẤT CẢ

  • bộ lọc - Tên tệp java.util.logging.Filter triển khai thực hiện cho Trình xử lý này. Giá trị mặc định: unset

  • trình định dạng - Tên lớp triển khai java.util.logging.Formatter cho Trình xử lý này. Giá trị mặc định: java.util.logging.SimpleFormatter

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