2013-08-06 24 views
5

Ho un requisito che ho bisogno di memorizzare le informazioni di controllo in un file TEXT. Ho pianificato di scrivere le informazioni di controllo utilizzando Apache Log4j.Dimensione massima file - supportato in log4j FileAppender

Sembra un'opzione affidabile. Tuttavia, dovrei essere in grado di scrivere le informazioni di controllo anche se il file dimensione raggiunge 3 GB.

Il log4j supporta il file dimensione anche a GigaBytes?.

O con una domanda veloce, Qual è la MaximumFileSize possono essere supportati in Log4j.

NOTA: non potevo andare per RollingFileAppender o DailyFileAppender, ho bisogno di registrare le informazioni Solo in un file di testo, dove alcuni altri componenti stanno leggendo questo contenuto del file e fare un po 'di processo.

+0

Ho un lavoro di lunga durata che scrive un file di registro da 7 gb che è compresso in modo rapido. Non compresso è un file di registro da 63 gb. L'apertura è un po 'complicata. Il limite del file system per le dimensioni dei file dovrebbe essere l'unico ostacolo reale in un registro di FileAppender. Quindi dipende. 256 TB su alcune FS. – dlamblin

risposta

16

Per impostazione predefinita, la dimensione massima del file è 10MB (Se non si menziona esplicitamente). E se si definisce esplicitamente, è possibile definire qualsiasi valore fino a GB (anche 1000 GB). Ma pensa, quando apri questo file, la tua macchina deve avere una quantità uguale di RAM. Quindi devi tenerne conto prima di scegliere file size. Un esempio qui

# 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 non contiene alcun campo per impostare la dimensione del file. Ma le sottoclassi RollingFileAppender e DailyFileAppender contengono.

+0

Grazie per i vostri commenti. Come hai detto, quale proprietà (campo) in Log4j FileAppender contiene questo valore maximumFileSize ?. Questo tipo di dati del campo avrà questo grande valore? – omega

+0

L'accettazione del punto in cui aprire il file deve essere supportata con la dimensione della RAM. Ma, ancora confuso con come questo valore di dimensione è vincolato all'interno di FileAppender. – omega

+0

Penso che dovresti usare 'logging del database '. In realtà, 'FileAppender' non contiene alcun campo per le dimensioni. Ma le loro sottoclassi 'RollingFileAppender' e' DailyFileAppender' contiene. Inoltre, puoi consultare [link] (http://logging.apache.org/log4j/1.2/apidocs/index.html) – user2550754

-1

Come esempio questo è il mio accodamento er in 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 

È possibile yUtilizzare questo file qualsiasi proprietà log4j utilizzare l'appender. La cosa principale è che dovresti cambiare le seguenti linee.

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