ありがとうございます。
unlinkに限らず何か方法があればいいのですが…
読み込みの最後に、以下の処理を実行するのはどうでしょうか?
出力された「debug.log」を「new-debug.log」というファイルでコピーし、「debug.log」を削除しておく。
こうすれば、エラーを見たいときは「new-debug.log」を見れば、「そのときのエラー」だけにできるのではと…
(できるかわかりませんし、そもそもこのコードがわからないですが、もしいけそうであれば教えてくださいませ。)
こんにちは
set_error_handler() を使用するのはどうでしょうか?
エラー処理をハンドルすることができます。
例:
set_error_handler( function( $errno, $errstr, $errfile, $errline ) {
$error_log_file = @ini_get( 'error_log' );
// ここで削除
return false;
} );
@ishitaka 様
情報ありがとうございます。専用の関数となるといけそうですね!
と思い、早速以下の1234という流れで試したのですが、削除は起こりませんでした…
1. 出力先を指定
// wp-config.php
define( 'WP_DEBUG', true );
if ( WP_DEBUG ) {
$wp_content_dir = '/home/xs000000/xs000000.xsrv.jp/public_html/wp-content';
$log_file = $wp_content_dir . '/themes/test/mydebug.log';
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', $log_file );
}
2. 削除処理を追加
// functions.php
set_error_handler( function( $errno, $errstr, $errfile, $errline ) {
$error_log_file = @ini_get( 'error_log' );
// ここで削除
unlink(WP_DEBUG_LOG);
return false;
} );
3. エラーログ出力
// header.php
error_log('log');
4. 上記3の状態で2回読み込むと、以下がmydebug.log
に出力され、削除でなく追記となったようです。
[18-Jan-2021 00:43:02 Asia/Tokyo] log
[18-Jan-2021 00:43:29 Asia/Tokyo] log
下記コードではどうでしょうか?
set_error_handler( function( $errno, $errstr, $errfile, $errline ) {
$error_log_file = @ini_get( 'error_log' );
@unlink( $error_log_file );
return false;
} );
ありがとうございます。
ただ変化はなく、削除でなく追記され続けます…
やっぱりできないのかなあ…なかなか悔しいですね。
提示のコードで検証してみました。結果、問題なくログファイルを削除することができました。
なぜ、削除されないのかちょっと分からないですね。すみません。m(__)m
それは不思議ですね。キャッシュでもありませんし…
ところで以下で$error_log_file = ファイル名
が出力されないのですが、それもおかしいですよね?
set_error_handler( function( $errno, $errstr, $errfile, $errline ) {
$error_log_file = @ini_get( 'error_log' );
error_log('$error_log_file = ' . $error_log_file);
@unlink( $error_log_file );
return false;
} );
うーん。夜分にありがとうございました。
引き続き調べてみて、何かわかしましたらまたご報告させて頂きます。