ID:               24928
 Updated by:       [EMAIL PROTECTED]
 Reported By:      phpbugs at localpin dot com
 Status:           Open
-Bug Type:         Unknown/Other Function
+Bug Type:         Documentation problem
 Operating System: Windows XP Home Edition
 PHP Version:      4.3.1
 New Comment:

This is the correct and expected behaviour. Using the type '3' for
logging errors is supposed to be flexible, someone might NOT want any
linefeeds appended, ie. if they want to log in binary format, for
example.



Previous Comments:
------------------------------------------------------------------------

[2003-08-04 01:12:03] phpbugs at localpin dot com

The observant reader will notice that the sample code should use the
the variable $msg rather than $fileline:

error_log($msg, 3, $dev_filename);

error_log($msg);

;-)

------------------------------------------------------------------------

[2003-08-04 01:07:53] phpbugs at localpin dot com

Description:
------------
There is an inconsistency whether error_log gives a newline or not when
sending output, only based upon whether the file is not named (message
type 0) or named explicitly (message type 3).

i.e. when doing "error_log($msg)" a newline is automatically appended,
but when doing "error_log($msg, 3, $myfile)" a newline is not
automatically appended.

e.g. error_log($msg) gives:
1. My msg
2. My msg
3. My msg
4. My msg

but error_log($msg, 3, $another_file) gives:
1. My msg 2. My msg 3. M
y msg 4. My msg

Since in both cases the output is to a file, it seems to me that this
is inconsistent.  Either BOTH should give an automatic newline, or
NEITHER.

One can even imagine the case where the filename for both is identical
(e.g. both use the file "error.log"), yet because you specify the name
of the file explicitly, you don't get a 'free' newline char.

Reproduce code:
---------------
var $counter = 1;
var $log_elsewhere = true;
var $msg_prefix = "This is test number: ";
var $dev_filename = "c:/Program Files/Apache
Group/Apache/logs/dev_error.log";$elsewhere_log_name = 

while (true) {
  $msg = $msg_prefix . $counter;
  if ($log_elsewhere) {
    error_log($fileline, 3, $dev_filename);

    // The following line should not be necessary
    error_log("\n", 3, $dev_filename);
  }
  else {
    error_log($fileline);
  }                                     

  $counter++;
}

Expected result:
----------------
Without the extra newline sending, I would like the output to be
identical in both cases.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=24928&edit=1


-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to