一応ソフトウェア開発者なので、困った時にはプログラムを解析、
状況によりデバッグ。なんてこともしています。
今回は、SugarCRMのデバッグ。
インバウンドメールをセットアップしても綺麗にケースに入ってこないので
英語のマニュアルを読むよりは、解析、デバッグしてしまおう。という魂胆です。
【前提】
・インバウンドメールは、cron.phpで呼び出す。・インバウンドメールの処理プログラムは、以下
/var/www/myapp/sugarcrm/modules/Schedulers/_AddJobsHere.php
【やったこと】
1. ソースを調べる。
まず、ソースをのぞいてみました。
cron.phpを動かしたときにNOTICEが出ていた部分を見つけたのですが
PHP Notice: Undefined property: InboundEmail::$team_id in /var/www/myapp/sugarcrm/modules/Schedulers/_AddJobsHere.php on line 104
これの原因は後回し。おそらく、インバウンドメールに対応するチームを設定していないからと思います。
⇒画面で見ても項目見当たらないし、まだそこまでの運用に載ってない。
で、ログを吐いている部分を確認。
$GLOBALS['log']->debug('Trying to connect to mailserver for [ '.$a['name'].' ]');
どこかにログを吐いていそうなことが分かったので、ログのファイルを検索
2.ログの内容を見てみる
> locate *sugar*.log
/var/www/myapp/sugarcrm/sugarcrm.log
/var/www/myapp/sugarcrm/sugarcrm_05_2014.log
/var/www/myapp/sugarcrm/sugarcrm_06_2014.log
ということで、月別にログを吐いていそうなことがわかりました。
ログの中を見ると、fatalだけが出力されています。内容からしてlog4j的なライブラリだろうと思い、ログの設定をしている所を探して、修正することにします。
3.ログ設定の修正
vim /var/www/myapp/sugarcrm/config.php前
'level' => 'fatal',
後
'level' => 'debug',
phpなので、何かの再起動は不要のようでした。
4.再度cron.phpを呼び出す
ものすごい勢いでDEBUG のログが吐かれてました。
中を見てみて、当りがついたので対処完了。
config.phpを元に戻して終了です。
ログ関連の概略は掴めたので、この後の運用も楽になりそうです。
ちなみに、発生事象だった「インバウンドメールが入ってこない件」は、
IMAPサーバー側の「未読」「既読」が関係していました。
全てのメールを「未読」に戻したら、大量に入ってきました。
0 件のコメント:
コメントを投稿