Progress 4GLを使用しているときに、コードのデバッグコードが誤って本番環境に漏れてしまうのを防ぐにはどうしたらいいですか?進捗状況4GLを使用して、デバッグコードをプロダクションに移行させないようにしますか?
答えて
ソリューションは、開発的環境は、他のenviromentsでは利用できないユニークなpropathエントリを持っていることを前提としています上に移動するとき、コードが再コンパイルされます。
&IF DEFINED(DEBUGGING) = 0 &THEN
&IF PROPATH MATCHES '*development*' &THEN
&GLOBAL-DEFINE DEBUGGING TRUE
&ELSE
&GLOBAL-DEFINE DEBUGGING FALSE
&MESSAGE Remove debugging: search for DEBUG within the code.
&ENDIF
&ENDIF
&IF DEFINED(DEBUGGING_STARTED) = 0 &THEN
&GLOBAL-DEFINE DEBUGGING_STARTED TRUE
IF {&DEBUGGING} THEN
DO:
&ELSE
END.
&UNDEFINE DEBUGGING_STARTED
&ENDIF
使用
保存ディレクトリへ(拡張子なし)「デバッグ」などのファイルはその後、propathが指し示す:
{debug}
/* some debugging code here */
{debug/}
アサーションに関する私の他の回答と同様に、デバッグフラグを含む本番サイトでは空のインクルードを設定できます。開発サイトでは、デバッグコードがプログラムに含まれるように値を定義するだけで済みます。
プリプロセッサにコードをラップすることによって、コンパイラは本番サイトにコンパイルするときにデバッグコードを完全に省略します。
&(debugalert)<> 0 &あなたは、あなたはデバッグコードを入れたいコードのバージョンでは「&グローバル定義のデバッグ」を使用することになり、その後
& endifの
定義されている場合。 "debug"を定義しないと、コンパイラはコードを省略しなければなりません。
/* debug.i生産に以下を省略*/
&グローバルDEFINE DEBUGALERT
/* test.p */ {debug.i}
DEF VAR h_ct AS INT NO-UNDO
DO h_ct = 1 TO 10:
&(DEBUGALERT)<> 0 & THEN
MESSAGE "debug message" h_ct.
<debug code goes here>
& ENDIF
END定義されている場合。
テストデータベースと本番データベースが別の名前を持っている場合、あなたはこのコードを使用することができます。
IF DBNNAME = "TESTDB" THEN
DO:
<DEBUG CODE>
END.
を、私は通常は特別なイベントパブリッシュ - デバッグメッセージを。私の開発環境では、デバッグメッセージをどこにでも表示して生成されたメッセージを表示するウィンドウを起動するメニュー項目がアプリケーションにあります。だから私は私のコードにデバッグメッセージを挿入し、メッセージを見たい場合はウィンドウを開くことができます。デバッグコードを整理するのを忘れてしまった場合、実際のユーザーにはメッセージは表示されませんが、デバッグウィンドウを開いて何が起こっているのかを確認できます。
(本のwebspeedバージョンはちょうどOSのファイルに出力を書き込みます)
ゴードンは、要求に応じてログオンするための非常にきれいなアイデアのように聞こえる、感謝! –
私はこれが好きです。なぜなら、複数のリスナーを持つことができるからです。そのうちの1つはログ機能です – nwahmaet
- 1. SharpZipLibを使用して進捗状況を取得していますか?
- 2. 純粋なPHP/AJAXを使用して進捗状況をアップロードしますか?
- 3. ウィンドウ7の進捗状況の間に進行状況バーが停止していますか?
- 4. 進捗状況4glとCの構造体
- 5. jQuery/ASP - クッキーを使用して進捗状況をアップロードする
- 6. Sqlの進捗状況がトランザクションにログインしています
- 7. イメージURLLoader AS3を使用してアップロードの進捗状況
- 8. 進行状況バーを使用していますか?
- 9. PECLアップロードの進捗状況 - Windows用にコンパイルされていますか?
- 10. フォームを使用したMessageBoxの進捗状況
- 11. HTTPWebRequestの進捗状況
- 12. JIRAのチャート進捗状況
- 13. CABasicAnimationの進捗状況は?
- 14. 進捗状況のスクロールtextview
- 15. DBCC SHRINKFILEの進捗状況
- 16. Androidカスタムタイトルバー進捗状況
- 17. 進捗状況のマルチプロセッシング
- 18. Openfeint Androidの進捗状況
- 19. Directory.GetFilesの進捗状況
- 20. 進捗状況のFTPファイルアップロード
- 21. WPF ProgressBarに進捗状況が表示されない
- 22. FileReference.load()の全体的な進捗状況を表示します。
- 23. 進捗状況ダイアログをテキストビューに添付して表示
- 24. 長い操作を実行しているときに進捗状況を表示しますか?
- 25. Android SeekBarの進捗状況が機能していませんか?
- 26. ワーカースレッドによる進捗状況を変更するには
- 27. 進捗状況のファイルをコピーする
- 28. 進捗状況ダイアログボックスが表示されません - Android
- 29. 進捗状況がドロップダウンの後ろに表示されます
- 30. XMLHttpRequestからの進捗状況
DuStorm、おかげで、優れたソリューションは、しかし、それはファイルを含める余分が必要です。 –