LoginSignup
8
8

More than 5 years have passed since last update.

【Mac限定】定期的にローカル環境のRailsログファイルを削除する方法

Last updated at Posted at 2013-09-14

Railsのログが肥大化する問題

Railsの開発をしていると、development.logtest.logがどんどん肥大化していきます。

ローカル環境のログであれば、数日前のログが見たいと思うことは滅多にないはずです。
肥大化したログファイルは単なる無駄ですので、定期的にログファイルを消してあげましょう。

定期的にログファイルを削除する方法

注) 以下の方法はMac限定です。

1. plistファイルを作成する

~/Library/LaunchAgents/me.rails.clean-log-files.plistというファイルを以下のように作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>me.rails.clean-log-files</string>
  <key>Program</key>
  <string>/bin/bash</string>
  <key>ProgramArguments</key>
  <array>
    <string>-l</string>
    <string>-c</string>
    <!-- TODO Replace ~/projects with path to your projects directory -->
    <string>find ~/projects -wholename '*/log/*.log' -print0 | xargs -0 rm</string>
  </array>
  <!-- Cleans development log files every day at 5 AM -->
  <key>StartCalendarInterval</key>
  <dict>
    <key>Minute</key>
    <integer>0</integer>
    <key>Hour</key>
    <integer>5</integer>
  </dict>
</dict>
</plist>

ファイル名やLabelは好きな名前を付けて下さい。

  <!-- ~/Library/LaunchAgents/me.rails.clean-log-files.plist -->
  <key>Label</key>
  <string>me.rails.clean-log-files</string>

対象の親ディレクトリは自分の開発環境に合わせて変更して下さい。

    <!-- TODO Replace ~/projects with path to your projects directory -->
    <string>find ~/projects -wholename '*/log/*.log' -print0 | xargs -0 rm</string>

ジョブを起動する時刻もお好みで変更して下さい。

  <!-- Cleans development log files every day at 5 AM -->
  <key>StartCalendarInterval</key>
  <dict>
    <key>Minute</key>
    <integer>0</integer>
    <key>Hour</key>
    <integer>5</integer>
  </dict>

2. ジョブをMacに登録する

以下のコマンドを実行してジョブを登録します。

$ launchctl load ~/Library/LaunchAgents/me.rails.clean-log-files.plist

念のため、ジョブが正常に登録されていることを確認します。

$ launchctl list | grep me.rails.clean-log-files
-   0   me.rails.clean-log-files

ジョブを停止する場合はunloadします。

$ launchctl unload ~/Library/LaunchAgents/me.rails.clean-log-files.plist

ジョブの起動時刻にMacを起動していなくてもOK!

cronとは異なり、ジョブの起動時刻にMacを起動していなくても大丈夫です。
起動時刻を過ぎていても、Macを立ち上げたタイミングでジョブが起動します。

これで毎日ローカル開発環境のログファイルが削除されます!

参考

この投稿は以下のブログ記事を参考にしています。

8
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8