2013-08-06 38 views
5

我有一个要求,我需要将审计信息存储在文本文件中。我计划使用Apache Log4j编写审计信息。最大文件大小 - 在log4j中支持FileAppender

似乎是可靠的选择。但是,即使fileSize达到3GB,我也应该能够编写审计信息

log4j是否支持fileSize,即使在GigaBytes

还是带个快问,MaximumFileSize是什么Log4j可以支持。

注: 我不能去RollingFileAppender进行或DailyFileAppender,我需要登录的信息只在一个文本文件,一些其他组件阅读本文件的内容,并做一些处理。

+0

我有一个长时间运行的作业,写一个快速压缩的7GB日志文件。解压缩它是一个63GB的日志文件。打开它有点棘手。文件大小的文件系统限制应该是您在FileAppender日志中唯一的实际障碍。这取决于。某些FS上的256 TB。 – dlamblin

回答

16

默认情况下,最大文件大小为10MB(如果未明确提及)。如果您明确定义,则可以定义高达GB(甚至1000GB)的任何值。但是,想想,当你打开这个文件时,你的机器必须有相同数量的RAM。所以你必须在选择file size之前考虑到这一点。 一个例子这里

# 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不包含设置文件大小的任何领域。但其小类RollingFileAppender和​​包含。

+0

感谢您的意见。正如你所提到的,Log4j FileAppender中的哪个属性(字段)包含这个maximumFileSize值?该字段的数据类型是否具有这些重要价值? – omega

+0

接受您关于打开文件的观点应该支持RAM大小。但是,仍然与这个大小值如何绑定在FileAppender中混淆。 – omega

+0

我想,你应该去'数据库日志记录'。实际上,'FileAppender'不包含任何大小的字段。但是他们的子类'RollingFileAppender'和'DailyFileAppender'包含。更多的,你可以参考[链接](http://logging.apache.org/log4j/1.2/apidocs/index.html) – user2550754

-1

作为一个例子,这是在我的WSO2追加呃是,

# 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 

您可以用您的appender玉色任何这log4j的属性文件。主要的是你应该改变以下几行。

log4j.appender.CARBON_LOGFILE.MaxFileSize=10MB 
log4j.appender.CARBON_LOGFILE.MaxBackupIndex=20