
October CMSのsystem_event_logsテーブル登録制御について
Octoberに「system_event_logs」テーブルがあるのですが、
Log::info()等でログを出力するたびに、このテーブルにも出力したログが登録されてしまいます。
気づけば数万件のデータが登録されていたということも。
下記2パターンの対応方法を記載します。
1.テーブルに登録しないようにする。
2.ログレベルに応じてデータを登録するようにする。
1.テーブルに登録しないようにする
下記ファイルを修正
modules/system/models/LogSetting.php
public function initSettingsData()
{
$this->log_events = false; // ←この設定をfalseに
$this->log_requests = false;
$this->log_theme = false;
}
2.ログレベルに応じてデータを登録するようにする。
下記ファイルを修正
modules/system/ServiceProvider.php
protected function registerLogging()
{
Event::listen(\Illuminate\Log\Events\MessageLogged::class, function ($event) {
//if (EventLog::useLogging()) {
if (EventLog::useLogging() && in_array($event->level,['error'])) { // errorのみ登録するようにする
EventLog::add($event->message, $event->level);
}
});
}
.envファイルに定義して、それを参照することで環境毎に設定することも可能になります。