Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write to error log with local time information and a line break at the end

Tags:

php

I need to write the local time information , the exception message to a php log file. I don't know why I can't get the format correct. The script I use is this:

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

There are two problem with this:

  1. The date is not written in local time, instead it's default to the GMT+0 time; I want to write the machine time information to the log
  2. After the file is written, it's not break to another line.

How to modify this code?

like image 361
Graviton Avatar asked Jul 02 '09 08:07

Graviton


3 Answers

Set your local time using date_default_timezone_set:

date_default_timezone_set('UTC');

Adding the e and O format parameters to the date call will give you the timezone identifier and GMT offset:

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

Add a "\n" to the end of the string:

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

Lines will not be concatenated when using "3" as the second argument to error_log, and using "0" will write the output to the default location specified in php.ini. "2" is no longer an option, so I think manually concatenating the line break is the way to go. See:

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

Also, take a look at localtime

like image 179
karim79 Avatar answered Oct 20 '22 16:10

karim79


As for "2" I suspect that is because you are using the HTML formatting line break
instead of the file line break \n. Maybe that's worth a try.

like image 33
Manrico Corazzi Avatar answered Oct 20 '22 16:10

Manrico Corazzi


Try using:

date_default_timezone_set('MYT');

That will set the script's timezone to Kuala Lumpur, Malaysia (that's your profile's country).

Then use:

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

I don't know if you want to leave the <br /> HTML tag there, so I left it there.

like image 44
Pedro Cunha Avatar answered Oct 20 '22 17:10

Pedro Cunha