問題タブ [zend-log]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
model-view-controller - Zend_Session と Zend_Log _Db は両方とも、ページの読み込みごとに 2 回データベースに書き込みます
Web には同様の問題の例がたくさん散らばっていますが、この特定のバリエーションを修正する解決策はないようです。任意の提案をいただければ幸いです。
通常、この問題は、不正なリンクによってファビコンや css ファイルなどのリソースのリクエストがディスパッチャーに複数回ヒットし、複数のディスパッチ プロセスが発生し、データベースに複数の行が発生するために発生します。
この非常に単純なサンプル ページのすべてのリンクが、実際にリンク先のリソースに解決されることを確認しました。
セッション ハンドラは次のように設定されます。
db ロギングは次のように設定されます。
両方のオブジェクトが正しく設定されており、データベースの読み取りと書き込みが可能です。すべてが2回しか起こりません。テスト ログ メッセージをアプリケーションの任意の場所に配置すると、データベースに 2 回書き込まれます。index アクションを呼び出すたびに 3 つの変数をインクリメントすると (1 つはセッションに格納され、1 つは Zend_Registry オブジェクトを介して渡され、もう 1 つは indexAction にローカルに渡されます)、セッション変数のみが 2 ずつインクリメントされます。Apache アクセス ログは正しい量を示します。ページの読み込みから発生するリクエストの数であり、すべてのレスポンス コードが 200 または 304 (変更なし) の良好なレスポンス コードを持っています。
すべてのヘッドリンクを無効にしようとしました。レイアウトを完全に無効にしようとしました。すべてをディスパッチャにローカライズし、ディスパッチが実行される前に終了しました。
いずれの場合も、余分な書き込み/インクリメントが発生します。何かご意見は?助けてくれてありがとう。
php - カスタム クラスで Zend_Log を使用する
MVC フレームワークなしで、Zend_Log およびその他の必要なクラスを使用しています。カスタム クラスに Zend のロギング機能 (および将来的には他のモジュール) を追加したいと考えています。
現在、Zend ロガーのラッパーを持っているので、おそらくグローバルにアクセスできます。
ログに記録したいクラスの各メソッドにこのコードを追加する必要がありますか? クラス内でログを作成すべきではありませんか? よりスマートな方法はありますか?
助けてくれてありがとう、DC
php - エラー処理サイクルへのフック
PHPエラー、キャッチされない例外、およびユーザーがデータベーステーブルに記録したいその他のものを記録するための監視ソリューションを構築しています。商用の Zend Server の監視ソリューションに代わるものです。
Zend_Log を拡張し、前述のすべてのケースを処理できる Monitor クラスを作成しました。私の目的は、構成を 1 つの場所 (ブートストラップ) に減らすことです。現時点では、次のようにモニターを初期化しています。
registerErrorHandler() メソッドは、DB への PHP エラー ロギングを有効にします。logExceptions() メソッドは拡張機能であり、保護されたフラグを設定するだけです。
ErrorController errorAction に、次の行を追加します。
ただし、ErrorController にコードを追加することは避けたいと思いますが、プラグインを動的に登録したいと思います。これにより、ユーザーにとって既存のプロジェクトへの統合が容易になります。
質問: postDispatch フックを使用するコントローラー プラグインを登録して、同じ効果を得ることはできますか? errorAction をトリガーするイベントがわかりません。回路の複数の段階で複数のイベントがある場合、いくつかのフックを使用する必要がありますか?
zend-framework - Zend_RegistryとZend_Cacheへのデータの保存
これまでBootstrap.php
、application.ini構成をZend_Registryとロガーのインスタンスにロードするために使用してきました。これらをZend_Cache内に保存する方が、アプリケーションの存続期間を通じて変更されないままであり、アプリケーションを再デプロイするたびに、とにかく最初の実行時にキャッシュがクリアされるため、より良いソリューションになるかどうか疑問に思いました。これについてのあなたの評決は何ですか?
また、保護された変数にロガーと構成が格納されているコントローラーを作成することを提案した人もいます。そうすれば、すべてのアプリケーションコントローラーがそれを継承します。私はそれが現在のZend_Registryの解決策よりも優れた解決策であるとは思いませんが、私が正当化されるかどうかはわかりません。
zend-framework - カスタム ヘルパーあり/なしで Zend_Log のインスタンスを Zend_Cache/Zend_Registry に格納する
Zend_Log (Zend_Log_Writer_Stream を使用) のインスタンスを Zend_Cache (できれば) または Zend_Registry (フォールバック) に格納しようとしていますが、カスタム ヘルパーを直接アクセスではなく抽象化レイヤーとして使用しています。
問題
- Zend_Registry を直接使用する場合を除き、Zend_Log_Writer_Stream の _stream プロパティは毎回消えます。
以下のコードを、それが生成する出力とともに添付しました。
アプリケーションとは別のデータベースに書き込む別のライター Zend_Log_Writer_Database があるため、これらの リンクをたどっていないので、それを初期化する必要があります。とりあえずコメントアウトしました。
Bootstrap.php - クリップ
Helper_SCacheOrRegistry.php
出力:
ロガー、ローカル変数
カスタム ヘルパーを使用したレジストリからのロガー
カスタム ヘルパーを使用した apc キャッシュからのロガー
ロガー、Zend_Registry から直接。
ロガー、apc キャッシュ、ダイレクトから。
php - Zend_Log_Writer_Firebug と一緒に使用すると、FirePHP でエクストラが表示されない
私は何年にもわたって (0.9 から) Zend Framework を使用して開発してきましたが、それ以来、この問題は私の神経を悩ませています。
FirePHP の助けを借りて、Zend Framework 1.11 アプリケーションから FireBug コンソールにメッセージを出力したいと考えています。デフォルトの application.ini ファイルを使用して Firebug を構成しました。
無効なアクションを呼び出すか、次のような例外を明示的にスローすることにより、IndexController などの FireBug でメッセージを表示できるようになりました。
これにより、デフォルトの ErrorController が例外を処理し、スタック トレースとリクエスト パラメータを表示します。
デフォルトの ErrorController は、すべてのメッセージを自動的に FireBug に記録します。
ただし、ご覧のように、スタック トレースや要求パラメーターなどの追加情報は表示されませんが、メインページにアクセスしたときの FireBug のスクリーンショットに見られるように、FireBug は表示することができます。
ドキュメントに記載されているように、Zend_Log_Writer_Firebug は、defaultPriorityStyle がTRACE などに設定されているすべてのwriterParamsを無視します。
ここで私の質問: firePHPcoreを使用せずに Zend Framework 自体に付属のツールを使用して、(最後の図に示すように) 余分なデータも送信するように Zend Framework を構成する方法はありますか?
よろしくお願いいたします。
php - Zend Framework のエラーなどをファイルに記録する
プラグインを作成するかapplication.iniに追加して、エラー、アクセス試行などをファイルに記録する必要があります。エラーはデフォルトのままで最終ユーザーに表示されません
前もって感謝します。
zend-framework - application.iniに複数のライターがあるZend_Log
私の設定には次のようなロガーがあります:
しかし、私はそれをエラーログにのみ使用したいと思います。別のログについては、別のログファイルを使用したい。そのため、これらの行をapp.iniに追加しました
しかし、これは機能していません。異なる優先順位に異なるファイルを使用したいと思います。ただし、ロガーは最初のロガーをオーバーライドします。どのように ?
debugging - Zend Log - ログの優先度が悪い
ブートストラップのログ構成に registerErrorHandler() を追加しようとすると、次のエラーが発生します。
Bootstrap.php
出力 Zend_Debug::dump($log):
助けてくれてありがとう。
zend-framework - Zend_DebugHTMLタグをZend_Logから除外する方法
Zend_Debug :: dumpを使用して、変数をZend_Logファイルにダンプします。出力をHTMLタグでラップするのをやめるにはどうすればよいですか?
ドキュメントには、「出力ストリームがWebプレゼンテーションとして検出された場合、var_dump()の出力は»htmlspecialchars()を使用してエスケープされ、(X)HTMLタグでラップされます」と記載されています。ログファイルがWebプレゼンテーションであると見なされるのはなぜですか?
dump関数のメソッドには、ブール値の$echoフラグがあります。これがFALSEの場合でも、ログファイルにHTMLマークアップが記録されます。
助けてくれてありがとう!