2013/04/19

[cakePHP2.x][log4php] log4phpでログにREMOTE_ADDRやHTTP_USER_AGENTを出したい

●bootstrap.php

/**
 * Configures Logger
 */
App::uses('CakeLog', 'Log');
CakeLog::config('log4php', array(
  'engine' => 'log4php.Log4CustomLogger'
));
LoggerMDC::put( 'REMOTE_ADDR', @getenv( "REMOTE_ADDR" ) );
LoggerMDC::put( 'HTTP_USER_AGENT', @getenv( "HTTP_USER_AGENT" ) );

→Logエンジン指定したあとに、LoggerMDC::put() で追記

●log4php.properties
log4php.appender.APP.layout.ConversionPattern=%d [%t][%X{REMOTE_ADDR}] %-5p %c - %m - %X{HTTP_USER_AGENT}%n

→%X{key}で 任意のフォーマット追加

参考)
Log4J徹底解説~Log4PHPの使い方 http://www.nurs.or.jp/~sug/soft/log4j/log4php1.htm