Minecraft Mod ログファイル多すぎ問題
2025年1月10日(金)
Minecraft

最初に
バニラで遊んでいるときはそんなに気にならないけど、Modを入れるときは最初のうちは動作に問題がないか何回かチェックしてかつ自分好みにカスタマイズするのでそのたびに起動すると、ログファイルがどんどん生成され細かいファイルがどんどん増え、ちょっとずつ容量圧迫するのが嫌なので、ログファイル生成を制御することにした。
別にアップロードはしないし、趣味でかつ誰にも見せないしエラーが発生してもログを見てその場で自己解決するので、個人的には生成されるログファイルの数は、もっと少なくしてほしい。
Forgeログ
Forgeのログはlatest.log
とdebug.log
の2種類ある
開発者にクラッシュやバグを報告しないならdebug.log
はいらないし容量の無駄なので除外もしくは最大個数を制限する
設定内容は以下の通りです
形式は自分のお好みで変更してください
設定内容
フォーマット形式:[時刻]:[レベル]:[実行ファイルjar]:[ログ内容][%d{HH:mm:ss}] [%t/%level] [minecraft/%logger{1}]: %minecraftFormatting{%msg}%n%xEx
保存期間:1日最大ファイル保管数:5個(1日の最大数)最大サイズ:1MB
<?xml version="1.0" encoding="UTF-8"?><Configuration status="warn" packages="net.minecraftforge.server.terminalconsole,com.mojang.util"> <Appenders> <TerminalConsole name="Console"> <PatternLayout> <LoggerNamePatternSelector defaultPattern="%highlightError{[%d{HH:mm:ss}] [%t/%level] [%logger]: %minecraftFormatting{%msg}%n%xEx}"> <!-- don't include the full logger name for Mojang's logs since they use full class names and it's very verbose --> <PatternMatch key="net.minecraft." pattern="%highlightError{[%d{HH:mm:ss}] [%t/%level] [minecraft/%logger{1}]: %minecraftFormatting{%msg}%n%xEx}"/> <PatternMatch key="com.mojang." pattern="%highlightError{[%d{HH:mm:ss}] [%t/%level] [mojang/%logger{1}]: %minecraftFormatting{%msg}%n%xEx}"/> </LoggerNamePatternSelector> </PatternLayout> </TerminalConsole> <Queue name="ServerGuiConsole" ignoreExceptions="true"> <PatternLayout> <LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss}] [%t/%level] [%logger]: %minecraftFormatting{%msg}{strip}%n"> <!-- don't include the full logger name for Mojang's logs since they use full class names and it's very verbose --> <PatternMatch key="net.minecraft." pattern="[%d{HH:mm:ss}] [%t/%level] [minecraft/%logger{1}]: %minecraftFormatting{%msg}{strip}%n"/> <PatternMatch key="com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] [mojang/%logger{1}]: %minecraftFormatting{%msg}{strip}%n"/> </LoggerNamePatternSelector> </PatternLayout> </Queue>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz"> <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level] [%logger]: %minecraftFormatting{%msg}{strip}%n"/> <Policies> <TimeBasedTriggeringPolicy/> <OnStartupTriggeringPolicy/> <SizeBasedTriggeringPolicy size="1MB"/> </Policies> <DefaultRolloverStrategy min="1" max="5" fileIndex="min"> <Delete basePath="logs" maxDepth="1"> <IfFileName glob="%d{yyyy-MM-dd}-%i*.log.gz" /> <IfLastModified age="1d" /> <IfAccumulatedFileCount exceeds="1" /> </Delete> </DefaultRolloverStrategy> </RollingRandomAccessFile> </Appenders>
<Loggers> <!-- make sure mojang's logging is set to 'info' so that their LOGGER.isDebugEnabled() behavior isn't active --> <Logger level="${sys:forge.logging.mojang.level:-info}" name="com.mojang"/> <Logger level="${sys:forge.logging.mojang.level:-info}" name="net.minecraft"/> <Root level="info"> <filters> <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL"/> <RegexFilter regex=".*\$\{[^}]*\}.*" onMatch="DENY" onMismatch="NEUTRAL"/> </filters> <AppenderRef ref="Console" level="${sys:forge.logging.console.level:-info}"/> <AppenderRef ref="ServerGuiConsole" level="${sys:forge.logging.console.level:-info}"/> <AppenderRef ref="File" level="${sys:forge.logging.file.level:-info}"/> <AppenderRef ref="DebugFile" level="${sys:forge.logging.debugFile.level:-trace}"/> </Root> </Loggers></Configuration>
Fabricログ
Fabricは特に言うことなし
むしろログはこれでいいのよ
強いて言うならログファイルの最大生成数だけ制御すればいい
しかもデバッグはJVM引数をつけてたらdebug.log
を出力してくれる(素晴らしい)
最後に
Mod入れるときにシングルプレイならログファイルはそんなにたくさんいらない
これは少数の意見かもしれないけどゲームを長時間つけることないので、つけっぱなしという概念ほぼない私にとっては無制限でログファイル作られるのは勘弁してほしい
もちろん手動で消せばいいのはもちろんだけどめんどくさい
追記
GithubのForge issueを見ると「ログの出力が気に入らないなら自分でLog4j2をカスタマイズしてください」という回答があった。