通知機能とファイルへの保存

エラーが発生した際、問題にすぐに気がつけるように監査ログ機能には通知機能がついており、設定したログレベル以上のログが発生すると、メールで通知してくれます。 また、データベースにログは保存しているのですが、ファイルにも書き出すことが出来るようになっております。

設定方法

a-blog cms設置ディレクトリにある「.envファイル」で設定を行います。

# エラー通知
ALERT_EMAIL_FROM=info@example.com # エラー通知メールの送信元
ALERT_EMAIL_TO= # エラー通知メールの送信先。空の場合「UID」が一番小さい管理者アカウントのメールアドレスに送信します。
ALERT_EMAIL_BCC= # カンマ区切りで指定
ALERT_REPORTING_LEVEL=WARNING # エラー通知をする最低ログレベルを設定します。(DEBUG|INFO|NOTICE|WARNING|ERROR|CRITICAL|ALERT)

# ロガー
LOGGER_ROTATING_MAX_FILES=60 # ログローテーションの日数を設定します。
LOGGER_MODE=development # (development|production) productionに設定すると、ライセンス切れやデバッグモード時なども、ログとして残します


設定項目 説明 デフォルト値
ALERT_EMAIL_FROM エラー通知メールの送信元 info@example.com
ALERT_EMAIL_TO エラー通知メールの送信先。空の場合「UID」が一番小さい管理者アカウントのメールアドレスに送信します
ALERT_EMAIL_BCC エラー通知メールのBCC
ALERT_REPORTING_LEVEL エラー通知をする最低ログレベルを設定します WARNING
LOGGER_ROTATING_MAX_FILES ログローテーションの日数を設定します 60
LOGGER_MODE productionに設定すると、ライセンス切れやデバッグモード時なども、ログとして残します development

モード

LOGGER_MODEはデフォルトだと「development」になっています。この状態だと、ライセンスに問題があった場合などログが残らず通知もしてくれないので、本番環境では必ず「production」に設定しましょう。

また本番環境での「LOGGER_MODE」の変更し忘れを防止するため、「development」に設定されている時はダッシュボードと監査ログページに以下の表示がされるようになっています。


ダッシュボード

ダッシュボード


監査ログページ

監査ログページ


ファイルへの保存

デフォルトで、ログはデータベースに書き出されますが、ファイルに書き出すことも可能です。ログの書き出し先は「config.server.php」で設定します。

ファイルに書き出されるログは「NOTICE」以上のログになります。

例えば、ドキュメントルートの一階層上の「logs」ディレクトリに「acms.log」という名前で保存する場合は、以下のように指定します。

define('ERROR_LOG_FILE', '../logs/acms.log');

ログファイルは、1日に1ファイル作成され、ログローテーション日数に指定されたファイル数作成されます。 ログローテーション日数を超えた場合は、古いファイルが削除され新しいファイルが作成されます。

LOGGER_ROTATING_MAX_FILES=60 # ログローテーションの日数を設定します。

以下は、ファイル名を「acms.log」とした場合のログファイル作成例になります。

acms-2023-09-28.log
acms-2023-09-29.log
acms-2023-09-30.log
acms-2023-10-01.log
acms-2023-10-02.log
...