2013-08-06 32 views
5

Tôi có yêu cầu rằng tôi cần lưu trữ thông tin kiểm tra trong một tệp TEXT. Tôi đã lên kế hoạch viết thông tin kiểm tra bằng cách sử dụng Apache Log4j.Kích thước tệp tối đa - được hỗ trợ trong log4j FileAppender

Dường như là tùy chọn đáng tin cậy. Tuy nhiên, tôi sẽ có thể viết thông tin Kiểm toán ngay cả khi kích thước tệp đạt đến 3GB.

Có phải log4j hỗ trợ tệpSize ngay cả tại GigaBytes?.

Hoặc với Câu hỏi nhanh, MaximumFileSize có thể được hỗ trợ trong số Log4j là gì.

LƯU Ý: tôi không thể đi cho RollingFileAppender hoặc DailyFileAppender, tôi cần phải đăng nhập thông tin Chỉ trong một tệp văn bản, nơi một số thành phần khác đang đọc nội dung tập tin này và thực hiện một số quy trình.

+0

Tôi có một công việc dài chạy viết một tệp nhật ký 7GB được nén linh hoạt. Uncompressed nó là một tập tin log 63GB. Mở nó là một chút khó khăn. Giới hạn hệ thống tập tin đối với kích thước tệp phải là rào cản thực sự duy nhất của bạn trong nhật ký FileAppender. Vì vậy, nó phụ thuộc. 256 TB trên một số FS. – dlamblin

Trả lời

16

Theo mặc định, kích thước tệp tối đa là 10MB (Nếu bạn không đề cập rõ ràng). Và nếu bạn xác định rõ ràng, bạn có thể xác định bất kỳ giá trị nào tối đa GB (thậm chí 1000GB). Nhưng hãy nghĩ rằng, khi bạn mở tệp này, máy của bạn phải có số tiền bằng nhau là RAM. Vì vậy, bạn phải cân nhắc điều này trước khi chọn file size. Một ví dụ ở đây

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=logging.log 
log4j.appender.file.MaxFileSize=100GB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

FileAppender không chứa bất kỳ lĩnh vực để thiết lập kích thước tập tin. Nhưng các lớp con của nó là RollingFileAppenderDailyFileAppender chứa.

+0

Cảm ơn nhận xét của bạn. Như bạn đã đề cập, thuộc tính (trường) nào trong Log4j FileAppender giữ giá trị maximumFileSize này ?. Liệu kiểu dữ liệu của trường có chứa những giá trị lớn này không ?. – omega

+0

Chấp nhận điểm của bạn là mở tệp phải được hỗ trợ với kích thước RAM. Tuy nhiên, vẫn còn nhầm lẫn với cách giá trị kích thước này được ràng buộc trong FileAppender. – omega

+0

Tôi nghĩ rằng, bạn nên đi cho 'cơ sở dữ liệu đăng nhập'. Trên thực tế, 'FileAppender' không chứa bất kỳ trường nào cho kích thước. Nhưng các lớp con của họ 'RollingFileAppender' và' DailyFileAppender' chứa. Hơn nữa, bạn có thể tham khảo [link] (http://logging.apache.org/log4j/1.2/apidocs/index.html) – user2550754

-1

Là một ví dụ này là er append của tôi trong WSO2 là,

# CARBON_LOGFILE is set to be a DailyRollingFileAppender using a PatternLayout. 
log4j.appender.CARBON_LOGFILE=org.apache.log4j.RollingFileAppender 
# Log file will be overridden by the configuration setting in the DB 
# This path should be relative to WSO2 Carbon Home 
log4j.appender.CARBON_LOGFILE.File=${carbon.home}/repository/logs/${instance.log}/wso2carbon${instance.log}.log 
log4j.appender.CARBON_LOGFILE.Append=true 
log4j.appender.CARBON_LOGFILE.layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout 
# ConversionPattern will be overridden by the configuration setting in the DB 
log4j.appender.CARBON_LOGFILE.layout.ConversionPattern=TID: [%T] [%S] [%d] %P%5p {%c} - %x %m {%c}%n 
log4j.appender.CARBON_LOGFILE.layout.TenantPattern=%U%@%D [%T] [%S] 
log4j.appender.CARBON_LOGFILE.threshold=DEBUG 
log4j.appender.CARBON_LOGFILE.MaxFileSize=10MB 
log4j.appender.CARBON_LOGFILE.MaxBackupIndex=20 

Bạn có thể yuse này tập tin bất cứ tài sản log4j sử dụng appender của bạn. Điều chính là bạn nên thay đổi các dòng sau.

log4j.appender.CARBON_LOGFILE.MaxFileSize=10MB 
log4j.appender.CARBON_LOGFILE.MaxBackupIndex=20 
Các vấn đề liên quan