GNU socialのデバッグログの設定
GNU social v2.0.0beta0には、バグ調査などで重要なデバッグログの設定がいくつか存在するので整理する。
以下の情報源から項目を整理した。
項目 | 初期値 | 説明 |
---|---|---|
site.logfile | null | ログファイルの出力先パス。publicディレクトリーからの相対パスになる。CONFIGURE.mdでは初期値が./となっているがnullが正しい。通常はsyslogに出力される。レンタルサーバー向けの設定。 |
site.logdebug | false | ログ出力の可否。 |
site.logperf | false | パフォーマンスカウンターをsyslogに出力する。 |
site.logperf_detail | false | カウンターヒットごとに出力する。 |
db.debug | 数字を指定する。3が最大の模様?extlib/DB/DataObject/Generator.phpの$_DB_DATAOBJECT[‘CONFIG’][‘debug’]で参照されている模様。 | |
db.log_queries | false | 全DBクエリーをログ出力する。 |
db.log_slow_queries | 0 | この秒数以上かかったクエリーだけログ出力する。 |
log.debugtrace | false | 例外のバックトレースログを出力する。 |
syslog.appname | statusnet | syslogの名前。 |
syslog.priority | debug | 未使用。 |
syslog.facility | LOG_USER | |
sessions.debug | false | セッションのデバッグ出力。 |
db.debugだけ説明がなく、default.phpにも記載がなかった。「Debian 11 with mariadb-server-10.0 seems to point to an error in Memcached_DataObject.ph (error in your SQL syntax) – NotABug.org: Free code hosting」で言及されていて存在を知った。
DB関係のデバッグログの設定はパフォーマンスに大きな影響があるので、ピンポイントで必要な時だけ有効にするのがよいだろう。
それ以外は例えば以下のようにまとめてconfig.phpに設定して問題調査に役立てればよいだろうと思った。
//// Debug
// $config['db']['debug'] = 3;
// $config['db']['log_queries'] = true;
$config['site']['logfile'] = 'gnusocial.log';
$config['site']['logdebug'] = true;
$config['log']['debugtrace'] = true;
$config['sessions']['debug'] = true;
今後トラブルに遭遇した時はこちらのログ設定をまずは行って調査していきたい。