[PHP] Ç¥ÁØ ¿¡·¯(stderr)·Î ¸Þ½ÃÁö¸¦ º¸³»´Â ¹æ¹ý
reference :
http://www.php.net/manual/en/wrappers.php.php
°¡²û PHP·Î ÄÚµùÇÏ´Ù º¸¸é ¾î¶² ¸Þ½ÃÁö¸¦ 'Ç¥ÁØ¿¡·¯'·Î º¸³»°íÀÚÇÒ °æ¿ì°¡
ÀÖ½À´Ï´Ù.
BASH °æ¿ì)
-Ç¥ÁØÃâ·Â : echo 'string'
-Ç¥ÁØÀÔ·Â : read foo ¶Ç´Â foo.sh < bar.txt ¶Ç´Â ÆĶó¸ÞÅÍ Àü´Þ $*, $@, $1, $2,
$3, ...
-Ç¥ÁØ¿¡·¯ : echo 'string' >&2
¿¹¸¦µé¾î,
ÄܼÖÀ̳ª Å͹̳ο¡¼´Â Ç¥ÁØÃâ·ÂÀÌ ¾Æ´Ñ Ç¥ÁØ¿¡·¯·Î º¸³»°íÀÚ ÇÒ °æ¿ì³ª
¾ÆÆÄÄ¡ ¸ðµâ·Î ±¸µ¿µÇ´Â PHP °æ¿ì, ¾ÆÆÄÄ¡ ¿¡·¯ ·Î±×·Î ¾î¶² ¸Þ½ÃÁö¸¦
³²±â±â¸¦ ¿øÇÒ °æ¿ì°¡ ÀÖÀ» °Ì´Ï´Ù.
¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù(´Ù¸¥ ¹æ¹ýµµ ÀÖ´Â °ÇÁö´Â ¸ð¸£°Ú½À´Ï¸¸)
## print to stderr such as error_log()
##
## arguments :
## $error string, error message
##
## return :
## $return mixed, the number of bytes written, or FALSE on error
##
function _stderr($errstr)
{
global $_SERVER;
if($fp = @fopen('php://stderr','w'))
{
## add error_log format style
##
if($_SERVER[HTTP_USER_AGENT])
{
$head = '['.date('D M d H:i:s Y').'] [PHP-stderr] '.
'[client '.$_SERVER[REMOTE_ADDR].'] ';
}
$return = @fwrite($fp,$head.$errstr."\n");
fclose($fp);
}
return $return;
}
function stderr($errstr)
{
return error_log($errstr,0);
}
## this alias
##
function stderror($errstr)
{
return stderr($errstr);
}
»ç¿ë¹ý :
1) ÄܼÖÀ̳ª Å͹̳ο¡¼ ½©°ú °°Àº ¹æ¹ýÀ¸·Î ÀÛ¾÷ÇÒ °æ¿ì
_stderr('¾ÆÀÌ°í Çü´Ô ¹º°¡ À߸øµÇ¾ú³×¿ä...T.T');
È®Àιæ¹ý :
(Ç¥ÁØ Ãâ·ÂÀ» ¾ø¾Ö°í Ç¥ÁØ ¿¡·¯¸¸ Ãâ·ÂÇϵµ·Ï ÇÔ)
$ php -q foo.php >/dev/null
¾ÆÀÌ°í Çü´Ô ¹º°¡ À߸øµÇ¾ú³×¿ä...T.T
$
2) ¾ÆÆÄÄ¡ ¸ðµâÇüÅ·Π¾ÆÆÄÄ¡ ¿¡·¯·Î±×(error_log)¿¡
±â·ÏµÇ°íÀÚ ÇÒ °æ¿ì
_stderr('¾Ñ DB ¿¬°áÀÌ ¾ÈµÇ³×¿ä....T.T');
È®Àιæ¹ý :
$ tail /any/path/to/apache/logs/error_log
...
[Wed Jul 02 02:25:05 2003] [PHP-stderr] [client x.x.x.x] ¾Ñ DB ¿¬°áÀÌ
¾ÈµÇ³×¿ä....T.T
EOF
|