web-dev-qa-db-ja.com

ウォッチドッグテーブルの無制限のエントリ

ウォッチドッグログエントリを無制限に設定する必要があります。これで、cronが呼び出されるたびにクリアされます。

admin/settings/logging/dblog

現在、最大は100000ですが、これを行うためのより良い方法はありますか?.

5
sathish

設定を「ALL」に変更するだけで機能します。下の画面をご覧ください!

enter image description here

Cronは、選択ボックスで最小制限が設定されている場合にのみ実行されます。以下のdblogモジュールのコードを参照してください。

function dblog_cron() {
  // Cleanup the watchdog table.
  $row_limit = variable_get('dblog_row_limit', 1000);

  // For row limit n, get the wid of the nth row in descending wid order.
  // Counting the most recent n rows avoids issues with wid number sequences,
  // e.g. auto_increment value > 1 or rows deleted directly from the table.
  if ($row_limit > 0) {
    $min_row = db_select('watchdog', 'w')
      ->fields('w', array('wid'))
      ->orderBy('wid', 'DESC')
      ->range($row_limit - 1, 1)
      ->execute()->fetchField();

    // Delete all table entries older than the nth row, if nth row was found.
    if ($min_row) {
      db_delete('watchdog')
        ->condition('wid', $min_row, '<')
        ->execute();
    }
  }
}

0である "ALL"として値を選択すると、Cronはエントリを削除しません。

Drupal 6、

Elysia Cron モジュールを使用して、dblog_cron機能をオフにすることができます。

Elysia Cron Moduleは、

不要なcronタスク/機能をオフ(無効)にします。

6
Anil Sagar

CRONを介してWatchdogログをフラッシュしたり、少なくとも手動でログをクリアしたりしないでください。最終的に問題が発生することがあります。専用または仮想のLinuxホストを使用している場合は、ウォッチドッグの代わりに Syslog を使用することを検討してくださいDrupalロギング(両方で利用可能Drupal 6および7.)

これにより、Drupalイベントの無制限の永続的なログを保持できます。ログファイルが手に負えないようにログローテートを使用する方法もセットアップガイドに示されています。

これは、パフォーマンスにも大きな影響を与える可能性があります。これは、ウォッチドッグが開始する過剰なDB書き込みを防止できるためです。

Syslogモジュールに関するDrupal.orgからの抜粋

Syslogモジュールをインストールして構成します

「モジュール」ページの/ admin/build/modulesに移動して、Syslogモジュールをインストールします。次に、Syslog設定ページ/ admin/settings/logging/syslog(D6)またはログとエラーの構成ページadmin/config/development/logging(D7)に移動し、ログメッセージに添付するSyslogレベルを選択します。 Syslogで使用されていないものを選択してください

別のファイルにログを記録するようにSyslogを構成する

編集/etc/syslog.confと追加:

local0.* /var/log/drupal.log

(local0がステップ1で使用するようにSyslogを構成したレベルの場合)

次に、Syslogを再起動します。

service syslog restart

これはオプションであることに注意してください。これを行わない場合、メッセージはおそらく/var/log/messages

データベースロギング(以前のウォッチドッグ)モジュールを無効にする

を使用して、syslogにメッセージが表示されていることを確認します

tail /var/log/drupal.log

Lessを使用してファイルを参照することもできます。

機能している場合は、モジュールページに移動してDblogを無効にできます。

完全なエントリについては、 Syslog:OS-integrated logging にアクセスしてください。

5
Citricguy