WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

【Symfony2】モノログローテーション設定

この記事は約2分19秒で読めます

Symfony2 Monolog

2015.11.02 追記

Doctrineが発行したSQLクエリーをモノログで出力するの記事にconfig.ymlのオススメ設定をご紹介しました。

ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

Symfony2にはデフォルトでログを出力してくれる機能(Monolog)が備わっています。
ただ、そのまま運用するとログファイルが肥大化が問題になります。

そこでログを一定の期間ごとに別のファイルに切り替えて記録できると管理も楽になります。
今回はSymfony2のMonologのローテーション設定についてご紹介します。

Monologについて

MonologはSymfony2で採用しているロギングを行うライブラリです。
細かい内容については公式の記事をご参考ください。

Monologの設定ファイルやログの出力場所は?

開発用の設定ファイル:app/config/config_dev.yml
本番用の設定ファイル:app/config/config_prod.yml

ログはapp/logsに出力されます。
デフォルトではapp/logs/dev.log, app/logs/prod.logになります。

config_dev.ymlのデフォルト設定

config_dev.ymlのMonolog部分だけ抜粋します。

config_prod.ymlのデフォルト設定

config_prod.ymlのMonolog部分だけ抜粋します。

Monologのローテーション設定

Monologのデフォルトのログ設定は削除、もしくはコメントして無効化してください。(上記抜粋部分)
そして次の記述をapp/logs/dev.log, app/logs/prod.logに追加します。

type:rotating_file

type:rotating_fileと設定することで1日置きにログが出力されるようになります。
dev-yyyy-mm-dd.log, prod-yyyy-mm-dd.log

max_files:14

max_files:14で最新14日分のログが保存されます。

level:debug

ログレベル 説明
DEBUG 詳細なデバッグ情報
INFO 情報。重要なイベント。 例として、SQLのログ、ユーザーのログイン情報など
NOTICE 注意。正常だが重要なイベント
WARNING 警告。実行時には問題ないが正常ともいえない何らかの予期しない問題。例として、廃棄予定(deprecated)のAPIの使用など
ERROR エラー。即時アクションは必要ないが、監視されるべきであるランタイムエラー
CRITICAL クリティカルなエラー。例として、アプリケーションのコンポーネントが使用できない、予期しない例外など
ALERT アラート。SMS・メール通知などアクションをすぐ起こす必要がある。例として、ウェブサイトがダウン、データベースに接続できないなど
EMERGENCY 緊急。システムが使用不能である

Monologのローテーション設定2(整形)

デフォルトのログ設定だと見づらかったり、余計なイベントログが表示されるので私は次のようなログ設定にしています。

以上、Symfony2でMonologのローテーション設定でした。

関連記事

関連記事

  1. Amazon Web Services(AWS) Symfony
  2. symfony2
  3. symfony2
  4. symfony2
  5. symfony2
  6. Symfony2 KnpPaginatorBundleで全件数を取得する

PR

カテゴリー