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

2013/04/04

[MySQL] ランダムでデータを取得

●ランダムで データを5件取得
select id from [table_name] ORDER BY RAND() limit 5;

2013/04/03

[Eclipse] SVN diff 比較で文字化け

いつも忘れるのでメモ

設定→一般→コンテンツ・タイプ
 テキスト > エンコードタイプを変更したいファイルの拡張子を選択
  「デフォルトエンコード」欄にUTF-8

2013/02/28

[php] 配列から空要素を取り除く

目からうろこだったのでメモ
$hoge_array = array("", "", "hoge");
$fuga_array = array_diff( $hoge_array, array( "" ) );
print_r($fuga_array );
参考)
phpで、array(配列)の空要素を取り除く - カサヒラボ http://d.hatena.ne.jp/kasahi/20070605/1181027762

2013/02/03

[Mac][MBA(Lion)] php.ini設定

MacでPHP動かしたら mktime()でWarningが出て怒られた

「Warning: mktime(): It is not safe to rely on the 〜」とかなんとか

エラーメッセージ見ると なんか timezoneを設定してよとかいってるぽい

php.ini の 「date.timezone =」を設定してやる必要がある

━━━━━━━━━━━━━━━━━

まず、Macに入ってるPHPは 最初から入ってるやつだから
php.iniどこにあるんだか知らない
とりあえず php infoをターミナルで表示してみる
---------------------
$ php -i | grep ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /private/etc/php.ini
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
 :
 :
(略)
---------------------
/etc にあるらしい
Scan this dir for additional .ini files が noneだと????(ま、いいや

/etc 配下を見ると
-r--r--r--  1 root  wheel  69337  7  8  2011 /etc/php.ini.default
こいつを
cpして(/etc 配下は root権限じゃないと何もできないから、以後 sudo必須)

$ sudo cp php.ini.default php.ini

read onlyだから ぱーみっそん変更して編集

$ sudo chmod 664 php.ini
$ sudo vi php.ini
---------------------
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = 'Asia/Tokyo' ←こんなかんじで。
---------------------

再度、php実行してみて Warningでなかった OK(・ω・)b