1

大規模なコード ベースから、一定期間にわたって実際に使用されているファイルを特定しようとしています。CFM ページと CFC、および含まれている CFM ファイルなどについて知る必要があります。

application.cfm にログインするか、IIS を使用してこの情報の一部を取得できることはわかっていますが、インクルード ファイルや使用されている CFC はまだ失われています。

CF が実行するすべてのファイルをログに記録する方法はありますか? 理想的には、新しいコーディングを最小限に抑えるか、1 か所だけにしたいと考えています。

ありがとう、シアラン

4

2 に答える 2

4

うーん、デバッグをオンにして、カスタムデバッグテンプレートを作成する必要があると思います。

デバッグテンプレートは次の場所にあります:[coldfusiondir] / wwwroot / WEB-INF / debug

classic.cfmテンプレートを画面に表示するために使用するコードを見てから、各テンプレートの実行を適切なデータストアに記録する同様のコードを作成します。

注:レポート実行時間とCFCにはパフォーマンスの問題(CFMX6 / 7)があるため、その設定を無効にし、関連するコードをすべて削除してください。

実際、これをライブ環境で実行する場合(理想的ではありません)、このロギングのみを実行するために必要最小限のコードまでカスタムテンプレートを削除してください。

于 2008-12-16T14:12:47.377 に答える
-2

デバッグ テンプレートを使用する方法は機能しますが、デバッグを有効にしている場合にのみ機能します。コード ベースが大きくて扱いにくく、この情報を収集する必要がある唯一の場所がライブである場合は、それらのテンプレートが何も出力していないことを確認してください。

さらに、CFC 呼び出しはかなり遅くなります。これによりサーバーがどのように破壊されるかを注意深く確認してください。

個人的には、ファイル名だけでサーバーレベルの構造を更新するだけです。

<cfparam name="server.st_FileLog" default="#structNew()#">
<cfparam name="server.st_FileLog[thisFile]" default="1">

Application.cfc または Application.cfm のこれらの 2 行で十分です。

次に、コードをダンプする別のコードを用意します。

<cfoutput><code>#structKeyList(server.st_FileLog,chr(13))#</code></cfoutput>
于 2008-12-20T12:30:48.590 に答える