Mage :: log()はMagentoが使用するすべてのファイルにログインしませんか?


11

で上書きしSitemap.phpましたapp/code/local/Mage/Sitemap/Model/Sitemap.php。ファイルが使用されているようです。すべてのコンテンツを削除すると、予想どおりエラーが発生します。

標準の内容全体Sitemap.phpを1つの変更を加えてコピーしました。追加した

public function generateXml() {
    Mage::log('test');
    ...
}

他の場所でこれを行うtestvar/log/system.log、期待どおりに印刷されますが、このファイルにのみ、メッセージは記録されません。

どんな助けも大歓迎です


編集

を使用して

Mage::log('text', null, <file>, true);

どちらも機能しません


システム構成でロギングが有効になっていますか?であるvar/log/あなたのWebユーザーによる書き込み可能(apachehttpdwww-data、など)
musicliftsme

ロギングはで機能するSitemapController.phpため、そうです。はいvar/log、書き込み可能です。あなたのアイデアをありがとう
Yorrd

メイジコアがロードされていないのでしょうか?Mage :: app()を試してみてください
Tim Hallman

@TimHallman magentoはコアなしでどのように機能しますか?サイトは問題なく動作します
Yorrd

それはsitemap.phpだからです。app/code/local/Mage/Sitemap/Model/Observer.phpではなくログインしてみてくださいSitemap.php
Tim Hallman

回答:


11

私は仮定します、ファイルはロードされますが、メソッドは呼び出されません。したがって、ブレークポイント(または悪い方法a die())をメソッドに設定し、それが呼び出されることを確認してください。

magentoがMage::log少なくとも$forceパラメーターで初期化された後、ログが書き込まれます


はい。ありがとう。なぜgenerateXmlがロードされていないのか、別の質問を開くと思います。いいえ、それはブレークポイントに到達しません。
Yorrd

29

を使用しMage::log('text here', null, 'system.log', true)ます。
それはいつもうまくいくはずです。


または、たとえば、ランダムなものとサイトマップログを混ぜたくない場合は、sitemap.logを使用します。
Julien Lachal

@JulienLachal。本当です。ファイル名は何でもかまいません。
マリウス

私の編集を見てください、これも機能しません
Yorrd

2

ここでの別の推測-サイトマップの生成は通常、cronjobによってトリガーされます。cronjobがwebuserとは異なるユーザーで実行されており、既存のsystem.logファイルに書き込む権限がない場合、エントリは取得されません。


確かに、サイトマップの管理ページで「生成」をクリックするだけでテストしています。だから彼には許可が必要だと思います。編集:許可が777に設定されている場合も機能しません
Yorrd

0

var/フォルダに適切な許可を与えます:

chmod -Rv 777 var/

したがって、以下のコードのように使用します。

Mage::log(print_r($yourTest), null, 'customLogFile.log', true);

しますprint_rはあなたの変数の型に関連するいくつかのエラーを防ぐことができます。


0

この行を任意の関数またはファイルに入れます

Mage :: log( "メッセージ-"、null、 'your-log-filename.log');

このファイルは、ルートフォルダーパス内に作成されます。

/var/log/your-log-filename.log

それがあなたのために働くことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.