【发布时间】:2016-04-25 02:14:20
【问题描述】:
是否可以使用带有策略的 MemoryMappedFile 将文件分解为固定大小,例如 250MB?我的 log4j2.xml 是这样的,但我想将日志文件分成 250MB,并且我需要使用 MemoryMappedFile 来提高 IO 性能。
<Configuration monitorInterval="30">
<Appenders>
<MemoryMappedFile name="MemoryMap" fileName="output/jscsi-out.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c{2} - %m%n(%L)" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
</MemoryMappedFile>
</Appenders>
<Loggers>
<Logger name="br.com" level="debug" additivity="false">
<AppenderRef ref="MemoryMap" />
</Logger>
<Logger name="org.jscsi.target.TargetServer" level="debug"
additivity="false">
<AppenderRef ref="MemoryMap" />
</Logger>
<Logger name="org.jscsi.target.storage" level="info"
additivity="false">
<AppenderRef ref="MemoryMap" />
</Logger>
<Logger name="org.jscsi.service" level="debug" additivity="false">
<AppenderRef ref="MemoryMap" />
</Logger>
<Root level="error" includeLocation="true">
<AppenderRef ref="MemoryMap" />
</Root>
</Loggers>
</Configuration>
【问题讨论】:
-
内存映射文件和滚动文件追加器都扩展了抽象输出流追加器。您应该能够创建一个扩展抽象流附加程序的插件,并基本上复制和粘贴 mmap 文件和滚动文件的功能。
标签: java logging configuration log4j log4j2