EC-CUBE Lab
produced by Cajiya
EC-CUBEに関するカスタマイズ方法やトラブルへの対処方法を発信

EC-CUBEのlogフォルダ肥大化の管理方法

公開日: 2025年10月12日 | 更新日: 2025年12月02日
管理画面共通 パフォーマンス劣化 EC-CUBE 4系全般 設定変更

要望や症状

var/log/prodフォルダ内のログファイルが肥大化し、ディスク容量を圧迫している状況が発生します。

主に影響を受けるファイルは以下の通りです。

  • admin.log(管理画面のアクセスログ)
  • site.log(サイト全体のログ)
  • front.log(フロント画面のログ)

理由や原因

EC-CUBEではSymfonyのMonologを使用してログを記録していますが、デフォルト設定では自動的なログローテーションやファイルサイズ制限が設定されていません。

アプリケーションの動作に伴い、エラーログ、アクセスログ、デバッグ情報などが継続的に蓄積されるため、時間の経過とともにログファイルが肥大化します。

特にプロダクション環境でも詳細なログレベルが設定されている場合、通常のアクセスでもログ出力量が多くなる傾向があります。

解決策

手動でのログ管理

まず安全にログファイルを管理するため、重要なログのバックアップを取得します。

# 重要なログは念のためバックアップ
cp var/log/prod/admin.log var/log/backup/admin_$(date +%Y%m%d).log
cp var/log/prod/site.log var/log/backup/site_$(date +%Y%m%d).log
cp var/log/prod/front.log var/log/backup/front_$(date +%Y%m%d).log

バックアップ取得後、ログファイルを削除または切り詰めます。

# ファイルを空にする(ログローテーション風)
> var/log/prod/admin.log
> var/log/prod/site.log
> var/log/prod/front.log

# または古いファイルを削除
rm var/log/prod/*.log

自動化されたログ管理の実装

継続的な管理のため、crontabを使用して定期的なログ削除を設定できます。

# 毎週日曜日2時に7日以上古いログを削除
0 2 * * 0 find /path/to/eccube/var/log/prod -name "*.log" -mtime +7 -delete

# 月初に前月のログをアーカイブ
0 3 1 * * cd /path/to/eccube && tar -czf var/log/archive/logs_$(date -d "last month" +%Y%m).tar.gz var/log/prod/*.log && > var/log/prod/*.log

ログレベルの調整

ログの出力量を根本的に削減するため、Monologの設定を調整します。app/Customize/Resource/config/monolog.yamlで以下のように設定します。

# app/Customize/Resource/config/monolog.yaml
monolog:
    handlers:
        main:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: warning  # debugからwarningに変更してログ量を削減
            channels: ["!event"]

バッチ処理での自動化

Customizeディレクトリにログ管理コマンドを作成することで、より柔軟な管理が可能です。

// app/Customize/Command/LogCleanupCommand.php
<?php
namespace Customize\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder;

class LogCleanupCommand extends Command
{
    protected static $defaultName = 'app:log:cleanup';

    protected function configure()
    {
        $this->setDescription('Clean up old log files');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $logDir = '%kernel.project_dir%/var/log/prod';
        $finder = new Finder();
        $finder->files()->in($logDir)->name('*.log')->date('< 7 days ago');

        foreach ($finder as $file) {
            unlink($file->getRealPath());
            $output->writeln('Deleted: ' . $file->getFilename());
        }

        return Command::SUCCESS;
    }
}

重要な注意事項

ログ管理を行う際は、以下の点にご注意ください。

  • ログ削除前は必ずバックアップを取得してください
  • エラー調査中の場合は削除を控えてください
  • 本番環境での作業は十分注意して実行してください
  • ログローテーション設定変更後は動作確認を行ってください

免責事項

本記事に掲載しているコードや手順は、執筆時点での情報および特定の環境下での動作確認に基づいています。 EC-CUBEのバージョン、サーバー環境、導入済みプラグインとの競合などにより、予期せぬ不具合が発生する可能性があります。

本記事の内容を実行した結果、生じた損害(データの消失、サイトの停止、機会損失など)について、当サイトおよび管理者は一切の責任を負いかねます。 実装にあたっては、必ずバックアップを取得し、検証環境(テスト環境)での動作確認を行った上で、ご自身の責任において実施してください。

この記事は参考になりましたか?

著者プロフィール: 株式会社カジヤ

当社はWeb業界の専門家として、培った経験や技術、自社事業を通して得た知見を土台に、 お客様の事業の成長を後押しすることを提供価値として活動する、Web事業の成長支援会社です。 EC-CUBE公式のパートナー制度「EC-CUBE インテグレートパートナー」に登録してしており、上位11%にあたる「ゴールドランク」に認定された実績があり、新しい通販サイトの構築から、カスタマイズ、リニューアルまで幅広く対応します。

管理画面共通 の関連記事

管理画面共通 機能不動作 EC-CUBE 4系全般
.htaccessを使用したIPアドレス制限とメンテナンス画面表示の設定方法

EC-CUBE 4系において、機能リリースなどのタイミングで一般のユーザーにはメンテナンスモードを表...

👍 1 / 👎 0 2025年10月12日
管理画面共通 表示/テンプレート調整 EC-CUBE 4系全般
管理画面左上のEC-CUBEロゴをカスタマイズする方法

管理画面の左上に表示されているEC-CUBEのデフォルトロゴを、自社のロゴに変更したいと考えています...

👍 0 / 👎 0 2025年10月12日
管理画面共通 セキュリティ強化 EC-CUBE 4系全般
ロードバランサー経由でも管理画面IP制限を適用させるカスタマイズ方法

ロードバランサー配下にEC-CUBEサーバを構築している環境で、管理画面IP制限設定を実施しようとす...

👍 0 / 👎 0 2025年10月12日
管理画面共通 データ不整合 EC-CUBE 4系全般
CloudFrontやロードバランサー経由でも実際のアクセス元IPアドレスをログに記録する方法

AWS CloudFrontやロードバランサー、クラウド型WAFを使用している環境において、EC-C...

👍 0 / 👎 0 2025年09月23日

EC-CUBE 4系全般 の関連記事

商品 データ不整合 EC-CUBE 4系全般
EC-CUBEで取り扱い終了商品の削除ができない理由と対応方法

EC-CUBEでは、取り扱いを終了した商品を削除したい場合に、削除ができない状態になることがあります...

👍 1 / 👎 0 2025年10月12日
インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
メール通知 通知/コミュニケーション EC-CUBE 4系全般
メール件名のショップ名を英語表記に変更する方法

EC-CUBE 4系で、メール件名の先頭に自動挿入される店舗名を英語表記に変更したい場合があります。...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日

設定変更 の関連記事

インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日
管理画面共通 機能不動作 EC-CUBE 4系全般
.htaccessを使用したIPアドレス制限とメンテナンス画面表示の設定方法

EC-CUBE 4系において、機能リリースなどのタイミングで一般のユーザーにはメンテナンスモードを表...

👍 1 / 👎 0 2025年10月12日
メール通知 メール送信不具合 EC-CUBE 4.2系 / Symfony 5.4
XServerでのメール送信設定における環境変数設定エラーの解消方法

XServerでメール送信を行う際に、MAILER_URL環境変数を設定してもメールが送信されない問...

👍 0 / 👎 0 2025年10月12日