將舊內容讀入$content
,然後將$string . $content
寫回文件中:不工作,新消息打印在文件末尾。爲什麼我不能在我的日誌文件中添加一行?
相關方法在Logger
類:
public function __construct($filename)
{
$this->filename = $filename;
$this->fp = fopen($this->filename, "w+");
if (!$this->fp) throw new Exception("Errore nel file: " . $this->filename);
}
protected function log($severity, $message)
{
$string = sprintf("[%s] (%s): %s", $severity, date('d/m/Y H:i:s'), $message);
$content = !filesize($this->filename)? '' :
fread($this->fp, filesize($this->filename));
fwrite($this->fp, $string . $content . "\n");
return $message;
}
我建議你在文件中像每一個末尾添加您的留言其他記錄器和使用@mario解決方案 – dynamic
可能重複[如何預先開始文件?](http://stackoverflow.com/quest離子/ 3332262 /如何做我prepend文件開始) – mario
你**真的不應該prepend到日誌文件**。它需要每次重寫**整個**文件。如果您只想簡單地查看最新的日誌條目,則可以始終使用shell上的「tail」程序獲取最後N行。 – ThiefMaster