扫盲 2026.10.10 18:14 28 次浏览 0 条评论

PHP写入日志文件记录信息

写日志说白了就是把一行文字追加到一个文件末尾,别想太复杂。PHP 里两种方式最常用,够用了。

第一种 error_log(),一行就能写。不过它默认跟在 php.ini 的路径后面,格式不好控制,排查问题时看着费劲。

第二种 file_put_contents(),自己定路径、自己拼内容,推荐这个。

<?php
$dir = __DIR__ . '/logs';
if (!is_dir($dir)) {
    mkdir($dir, 0755, true);      // 目录不存在就建,否则写入直接失败
}
$file = $dir . '/' . date('Y-m-d') . '.log';   // 按天分文件,好找

$content = date('Y-m-d H:i:s') . ' | 用户' . $uid . ' 登录失败 | IP:' . $ip . PHP_EOL;

// FILE_APPEND 追加不覆盖,LOCK_EX 防止多人同时写乱行
file_put_contents($file, $content, FILE_APPEND | LOCK_EX);

几个容易踩的坑:目录和文件要有写权限,Linux 上注意 www 用户;不加 FILE_APPEND 会把之前的日志全冲掉;PHP_EOL 别漏,不然所有记录挤成一行。

日志文件会越滚越大,简单点就按月分文件,或者写之前判断大小,超过几兆就重命名归档,不用搞什么复杂轮转。

标签:PHP日志,file_put_contents,自学笔记

说点什么 0

行思随记

欢迎来到:行思随记