23.2. ¶óÀÌÅÍ

¶óÀÌÅÍ´Â,Zend_Log_Writer_Abstract (À»)¸¦ °è½ÂÇÑ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.¶óÀÌÅÍÀÇ ¿ªÇÒÀº, ·Î±×ÀÇ µ¥ÀÌÅ͸¦ ¿¬±¸ ÃÖÁ¾ ´Ü°èÀÇ ½ºÅ丮Áö¿¡ ±â·ÏÇÏ´Â °ÍÀÔ´Ï´Ù.

23.2.1. ½ºÆ®¸²¿¡ÀÇ ½á³»

Zend_Log_Writer_Stream (Àº)´Â, ·Î±× µ¥ÀÌÅ͸¦ PHP ÀÇ ½ºÆ®¸² ¿¡ ½á³À´Ï´Ù.

·Î±×ÀÇ µ¥ÀÌÅ͸¦ PHP ÀÇ Ãâ·Â ¹öÆÛ¿¡ ½á³»·Á¸é ,URL php://output (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.ÇÑÆí, ·Î±×ÀÇ µ¥ÀÌÅ͸¦ Á÷Á¢ STDERR (¿Í)°ú °°Àº ½ºÆ®¸²¿¡ º¸³¾ ¼öµµ ÀÖ½À´Ï´Ù (php://stderr).


<?php
$writer 
= new Zend_Log_Writer_Stream('php://output');
$logger = new Zend_Log($writer);

$logger->info('Informational message');

µ¥ÀÌÅ͸¦ ÆÄÀÏ¿¡ ½á³»·Á¸é , ÆÄÀÏ ½Ã½ºÅÛ URL ÀÇ ¾î´ÀÂÊÀ̵çÀ» »ç¿ëÇÕ´Ï´Ù.


<?php
$writer 
= new Zend_Log_Writer_Stream('/path/to/logfile');
$logger = new Zend_Log($writer);

$logger->info('Informational message');

µðÆúÆ®¿¡¼­´Â, ½ºÆ®¸²À» µ¡ºÙ¿© ¾¸ ¸ðµå ("a") ±×¸®°í ¿ÀÇÂÇÕ´Ï´Ù. ´Ù¸¥ ¸ðµå·Î ¿ÀÇÂÇÏ·Á¸é ,Zend_Log_Writer_Stream ÀÇ constructor¡¡ ¡¡ À¸·Î µÎ¹øÂ°ÀÇ ¿É¼Ç Àμö¿¡ ¸ðµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

Zend_Log_Writer_Stream ÀÇ constructor¡¡ ¡¡ ¿¡´Â, ±âÁ¸ÀÇ ½ºÆ®¸² ÀÚ¿øÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.


<?php
$stream 
= @fopen('/path/to/logfile''a'false);
if (! 
$stream) {
    throw new 
Exception('½ºÆ®¸²ÀÇ ¿ÀÇ¿¡ ½ÇÆÐÇß½À´Ï´Ù');
}

$writer = new Zend_Log_Writer_Stream($stream);
$logger = new Zend_Log($writer);

$logger->info('ÅëÁö ¸Þ¼¼Áö');

±âÁ¸ÀÇ ½ºÆ®¸² ÀÚ¿ø¿¡ ´ëÇØ¼­ ¸ðµå¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù. ÁöÁ¤ÇÏ·Á°í Çϸé Zend_Log_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.

23.2.2. µ¥ÀÌŸº£À̽º¿¡ÀÇ ½á³»

Zend_Log_Writer_Db (Àº)´Â, Zend_Db (À»)¸¦ »ç¿ëÇØ ·Î±× Á¤º¸¸¦ µ¥ÀÌŸº£À̽º¿¡ ½á³À´Ï´Ù. Zend_Log_Writer_Db ÀÇ constructor¡¡ ¡¡ ¿¡´Â Zend_Db_Adapter ÀÇ ÀνºÅϽº, Å×À̺í¸í ¹× µ¥ÀÌŸº£À̽ºÀÇ Ä÷³°ú À̺¥Æ® µ¥ÀÌÅÍ Ç׸ñ°úÀÇ ´ëÀÀÀ» ÁöÁ¤ÇÕ´Ï´Ù. columns to event data items:


<?php
$params 
= array ('host'     => '127.0.0.1',
                 
'username' => 'malory',
                 
'password' => '******',
                 
'dbname'   => 'camelot');
$db Zend_Db::factory('PDO_MYSQL'$params);

$columnMapping = array('lvl' => 'priority''msg' => 'message');
$writer = new Zend_Log_Writer_Db($db'log_table_name'$columnMapping);

$logger = new Zend_Log($writer);

$logger->info('ÅëÁö ¸Þ¼¼Áö');

À§ÀÇ ¿¹´Â, ÀÏÇà ¸¸Å­ÀÇ ·Î±× µ¥ÀÌÅ͸¦ log_table_name (ÀÌ)¶ó´Â À̸§ÀÇ Å×ÀÌºí¿¡ ½á³À´Ï´Ù.µ¥ÀÌŸº£À̽ºÀÇ Ä÷³ lvl ¿¡´Â ¿ì¼±µµÀÇ ¹øÈ£°¡ °Ý³³µÇ¾îmsg ±×·¸´Ù°í ÇÏ´Â Ä÷³¿¡ ·Î±×ÀÇ ¸Þ¼¼Áö°¡ °Ý³³µË´Ï´Ù.

23.2.3. ¶óÀÌÅÍÀÇ ±×·çÅͱâ

Zend_Log_Writer_Null (Àº)´Â ±×·çÅͱâ·Î, ·Î±× µ¥ÀÌÅ͸¦ ¾îµð¿¡µµ ½á³»Áö ¾Ê½À´Ï´Ù. À̰ÍÀº, ·Î±× Ãâ·ÂÀ» ¹«È¿·Î Çϰųª Å×½ºÆ®½Ã µî¿¡ Æí¸®ÇÕ´Ï´Ù.


<?php
$writer 
= new Zend_Log_Writer_Null;
$logger = new Zend_Log($writer);

// ¾îµð¿¡µµ Ãâ·ÂµÇÁö ¾Ê½À´Ï´Ù
$logger->info('ÅëÁö ¸Þ¼¼Áö');

23.2.4. ¸ñÅ©¿¡ ÀÇÇÑ Å×½ºÆ®

Zend_Log_Writer_Mock (Àº)´Â ¸Å¿ì ½ÉÇÃÇÑ ¶óÀÌÅÍÀÔ´Ï´Ù. ¹ÞÀº »ýÀÇ µ¥ÀÌÅ͸¦ ¹è¿­¿¡ °Ý³³ÇØ, ±×°ÍÀ» public ÇÁ·ÓÆÛƼ·Î¼­ °ø°³ÇÕ´Ï´Ù.


<?php
$mock 
= new Zend_Log_Writer_Mock;
$logger = new Zend_Log($mock);

$logger->info('ÅëÁö ¸Þ¼¼Áö');

var_dump($mock->events[0]);

// Array
// (
//    [timestamp] => 2007-04-06T07:16:37-07:00
//    [message] => ÅëÁö ¸Þ¼¼Áö
//    [priority] => 6
//    [priorityName] => INFO
// )

¸ñÅ©°¡ ±â·ÏÇÑ À̺¥Æ®¸¦ ¼Ò°ÅÇÏ·Á¸é , ´Ü¼øÇÏ°Ô $mock->events = array() (À¸)·Î ÇÕ´Ï´Ù.

23.2.5. ¶óÀÌÅ͸¦ Á¶ÇÕÇÑ´Ù

ÇÕ¼º ¶óÀÌÅÍ ¿ÀºêÁ§Æ®´Â ¾ø½À´Ï´Ù. ±×·¯³ª, ·Î±×ÀÇ ÀνºÅϽº´Â ÀÓÀÇÀÇ ¼öÀÇ ¶óÀÌÅÍ¿¡ ½á³¾ ¼ö ÀÖ½À´Ï´Ù.±×·¯±â À§Çؼ­´Â addWriter() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
$writer1 
= new Zend_Log_Writer_Stream('/path/to/first/logfile');
$writer2 = new Zend_Log_Writer_Stream('/path/to/second/logfile');

$logger = new Zend_Log();
$logger->addWriter($writer1);
$logger->addWriter($writer2);

// ¾çÂÊ ¸ðµÎÀÇ ¶óÀÌÅÍ¿¡ ½á³»Áý´Ï´Ù
$logger->info('ÅëÁö ¸Þ¼¼Áö');