You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中创建自定义错误日志文件(不使用WP_DEBUG_LOG)

实现WordPress插件独立错误日志记录

要实现仅记录插件自身错误的独立日志,无需依赖WordPress自带的WP_DEBUG_LOG,可以自行编写自定义日志函数,指定独立的日志文件路径,在插件的错误场景中调用该函数即可。

1. 编写自定义日志函数

在你的插件主文件中添加以下函数,处理日志写入逻辑:

function my_product_import_log_error( $message, $error_type = 'ERROR' ) {
    // 定义日志文件存储路径(插件目录下的logs文件夹)
    $log_dir = plugin_dir_path( __FILE__ ) . 'logs/';
    $log_file = $log_dir . 'product-import-errors.log';

    // 创建日志目录(如果不存在)
    if ( ! file_exists( $log_dir ) ) {
        mkdir( $log_dir, 0755, true );
    }

    // 创建日志文件(如果不存在)并设置权限
    if ( ! file_exists( $log_file ) ) {
        touch( $log_file );
        chmod( $log_file, 0644 );
    }

    // 格式化日志内容,包含时间、错误类型、消息和错误位置
    $timestamp = date( 'Y-m-d H:i:s' );
    $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 2 );
    $caller = isset( $backtrace[1] ) ? $backtrace[1]['file'] . ' line ' . $backtrace[1]['line'] : 'Unknown location';
    $log_entry = "[$timestamp] [$error_type] $message | $caller" . PHP_EOL;

    // 写入日志(追加模式,加锁避免并发写入冲突)
    file_put_contents( $log_file, $log_entry, FILE_APPEND | LOCK_EX );
}

2. 在插件中调用日志函数记录错误

在商品导入的业务逻辑中,遇到错误或异常时调用上述函数,将错误信息写入独立日志:

// 示例:商品导入逻辑中的异常捕获与日志记录
try {
    // 你的商品导入核心代码
    $product = wc_get_product( $product_id );
    if ( ! $product ) {
        throw new Exception( "商品ID $product_id 不存在,无法导入" );
    }
    // 其他导入操作...
} catch ( Exception $e ) {
    // 记录异常错误
    my_product_import_log_error( $e->getMessage(), 'EXCEPTION' );
}

// 示例:非致命警告记录
if ( empty( $product_data['price'] ) ) {
    my_product_import_log_error( "商品 {$product_data['name']} 价格为空,将使用默认值", 'WARNING' );
}

3. 注意事项

  • 权限设置:确保logs目录权限为0755,日志文件权限为0644,避免因权限不足无法写入日志。
  • 日志安全:在logs目录下创建.htaccess文件,禁止外部访问日志内容:
    Order deny,allow
    Deny from all
    
  • 日志清理:可添加自动清理逻辑,比如定期删除超过7天的日志,防止日志文件过大占用服务器空间。

内容的提问来源于stack exchange,提问作者Chris Tsironis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:45:40