使用本地时间信息写入错误日志,并在末尾写入换行符

时间:2009-07-02 08:29:30

标签: php

我需要将本地时间信息,异常消息写入php日志文件。我不知道为什么我的格式不正确。我使用的脚本是:

  error_log('['.date("F j, Y, g:i a").']'.$msg." <br>", 3,  $phperrorPath);

这有两个问题:

  1. 日期不是以当地时间写的,而是默认为GMT + 0时间;我想将机器时间信息写入日志
  2. 写入文件后,它不会中断到另一行。
  3. 如何修改此代码?

3 个答案:

答案 0 :(得分:8)

使用date_default_timezone_set设置当地时间:

date_default_timezone_set('UTC');

将e和O格式参数添加到date调用将为您提供时区标识符和GMT偏移量:

date("F j, Y, g:i a e O")

在字符串的末尾添加“\ n”:

//I've left in the HTML line break
error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br /> \n", 3,  $phperrorPath); 

使用“3”作为error_log的第二个参数时,不会连接行,使用“0”会将输出写入php.ini中指定的默认位置。 “2”不再是一个选项,所以我认为手动连接换行符是要走的路。参见:

http://php.net/manual/en/function.error-log.php

另外,请查看localtime

答案 1 :(得分:1)

对于“2”我怀疑是因为您使用HTML格式化换行符
而不是文件换行符 \ n 。也许这值得一试。

答案 2 :(得分:1)

尝试使用:

date_default_timezone_set('MYT');

这会将剧本的时区设定为马来西亚吉隆坡(这是你个人资料的国家)。

然后使用:

error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br />\r\n",3,$phperrorPath);

我不知道你是否想离开&lt; br /&gt; HTML标签,所以我把它留在那里。