You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Remko Popma (JIRA)" <ji...@apache.org> on 2015/10/16 02:55:05 UTC

[jira] [Commented] (LOG4J2-1162) Memory-mapped file appender creates null-padded files.

    [ https://issues.apache.org/jira/browse/LOG4J2-1162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14959961#comment-14959961 ] 

Remko Popma commented on LOG4J2-1162:
-------------------------------------

This is by design. 32MB is the default size of the memory-mapped region.
(By the way, there is no guarantee that all bytes in this region will be nulled out. The unused part may simply contain garbage.)

When Log4j shuts down, and the MemoryMappedFileManager is closed, the file will be truncated to the part that is actually used.

> Memory-mapped file appender creates null-padded files.
> ------------------------------------------------------
>
>                 Key: LOG4J2-1162
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1162
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.4.1
>         Environment: Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T04:57:37-07:00)
> Maven home: C:\Java\apache-maven-3.3.3\bin\..
> Java version: 1.7.0_79, vendor: Oracle Corporation
> Java home: C:\Program Files\Java\jdk1.7.0_79\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>            Reporter: Gary Gregory
>
> Memory-mapped file appender creates null-padded files.
> If configured my app like this:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Copyright 2014-2015 Rocket Software, Inc. All rights reserved. -->
> <Configuration status="WARN" monitorInterval="5">
>   <Appenders>
>     <Console name="Console" target="SYSTEM_OUT">
>       <PatternLayout noConsoleNoAnsi="true"
>         pattern="%style{%d}{white} %highlight{%-5level}{TRACE=white} %style{[%t][%logger]}{white} %highlight{%msg%n%throwable}{TRACE=white}" />
>     </Console>
>     <RollingRandomAccessFile name="RollingFile" append="false" fileName="/test/dv/logs/dv.log-OFF"
>       filePattern="/test/dv/logs/$${date:yyyy-MM}/dv-%d{yyyy-MM-dd}-%i.log.gz">
>       <PatternLayout>
>         <Pattern>%d %-5level [%t][%logger] %msg%n%throwable</Pattern>
>       </PatternLayout>
>       <Policies>
>         <SizeBasedTriggeringPolicy size="100 MB" />
>       </Policies>
>     </RollingRandomAccessFile>
>     <MemoryMappedFile name="MemMapFile" append="false" fileName="/test/dv/logs/dv.log">
>       <PatternLayout>
>         <Pattern>%d %-5level [%t][%logger] %msg%n%throwable</Pattern>
>       </PatternLayout>
>     </MemoryMappedFile>
>   </Appenders>
>   <Loggers>
>     <Root level="trace">
> <!--       <AppenderRef ref="Console" /> -->
> <!--       <AppenderRef ref="RollingFile" /> -->
>       <AppenderRef ref="MemMapFile" />
>     </Root>
>     <Logger name="javax.management" level="INFO" />
>     <Logger name="sun.rmi" level="INFO" />
>     <Logger name="com.rs.dv.util.LoggerEnvironmentReporter" level="OFF" />
>   </Loggers>
>   <!-- Filters -->
>   <Filters>
>     <!-- SQL only -->
>     <!-- <MarkerFilter marker="DV.SQL" onMatch="ACCEPT" onMismatch="DENY" /> <MarkerFilter marker="DV.SQL.QUERY" onMatch="ACCEPT" 
>       onMismatch="DENY" /> <MarkerFilter marker="DV.SQL.UPDATE" onMatch="ACCEPT" onMismatch="DENY" /> -->
>     <!-- No buffer hex dumps -->
>     <!-- <MarkerFilter marker="DV.BUFFER" onMatch="DENY" onMismatch="NEUTRAL" /> -->
>   </Filters>
> </Configuration>
> {code}
> After the app runs, I have a 32 MB log file, with the later 2/3 of the file, all null bytes.
> Clearly, we need to limit what we write out.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org