わたねこコーリング

野良プログラマ発、日々のアウトプット

apns-php のログ出力をオフにする

今年もまた、夏到来とともに修羅場カモーン!で「夏休み? なにそれおいしいの」とイタイケな Mariyudu@野良プログラマです。ご無沙汰してます。

時代の流れってやつですかね。ロートルな私にもスマホアプリ絡みの仕事がちらほら来るようになって、プッシュ通知なんてモノもすなる今日この頃です。PHPer なので apns-php を有難く使わせてもらってますが、開発から運用に切り替える際にログ出力をオフにするのってどーすんだろ? とちょっと調べたのでおすそ分けです。

ログ出力ってのは標準出力に親切に表示されるこんなやつ(↓)ですが、

Tue, 27 Aug 2013 12:17:27 +0900 ApnsPHP[7815]: INFO: Trying ssl://gateway.push.apple.com:2195...
Tue, 27 Aug 2013 12:17:27 +0900 ApnsPHP[7815]: INFO: Connected to ssl://gateway.push.apple.com:2195.

この処理は、ApnsPHP_Push の construct 時に基底クラス ApnsPHP_Abstract さんが、メンバ $_logger にインターフェース ApnsPHP_Log_Interface 実装クラスのオブジェクトであるロガーをセットして、事ある毎に実行している模様なので(長w)、早い話がこんな感じでロガーをカスタマイズすればいいんじゃないかと。

// 何もしない代替ロガークラス
class ApnsPHP_Log_Custom implements ApnsPHP_Log_Interface
{
	public function log($sMessage){}
}

$push = new ApnsPHP_Push(ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, MY_CERTIFICATION);
$push->setLogger(new ApnsPHP_Log_Custom); // 何もしないロガーに置き換え

まぁ apns-php はコンパクトなので、各自「コード嫁」で解決する問題ですが、駄記事もブログの賑わいということで。