記事"エラーとログの発見"についてのディスカッション

 

新しい記事 エラーとログの発見 はパブリッシュされました:

MetaEditor 5にはデバッグ機能が備わっています。しかし、MQL5プログラムを書くとき、個別の値ではなく検証中やオンライン作業中に現れるメッセージをすべて表示したいと思うことがよくあります。ログファイルのサイズが大きい場合、要求されるメッセージを速く簡単に回復するよう自動化するのは疑う余地がありません。本稿では、MQL5プログラム内エラーを発見する方法とログ手法を考察していきます。また、ファイルに単にログインし、ログを簡単に閲覧するためのプログラム、LogMonについての知識も深めていきます。

LogMon検索

作者: Дмитрий Александрович

 

記事をありがとう。長い間、このようなものを作りたいと思っていたが、なかなか手が上がらなかった。そして今...もう使っているよ。

 
papaklass:

この記事も気に入ったよ。というのも、MTはスキップしながらプリントするので、とても不便なんです。

スキップは "Experts "タブにしかありません。すべてのメッセージはログファイルにあります。
 

私はこれか似たようなことにもっと夢中になっていた:

void PrintDebugInfo(string InputString)
{
  CopyTime(Symbol(),Period(),0,1,Time);
  ArraySetAsSeries(Time,true);
  FileWrite(FileHandle,Time[0],"   ",InputString);
}

コードをありがとう。

 
Lizar:

記事をありがとう。長い間、このようなものを作りたいと思っていたが、なかなか手が上がらなかった。そして今...すでに使っているよ。

ぜひ使ってください!:)
皆さんが使ってくださるうちに、クラスやプログラムを改良していきます。)
 

非常に有用な資料だ!

 

添付の.exeはロシア語のままです。再アップをお願いできますか?

追伸:これは本当に便利です!OOPプロジェクトで 最初に宣言されるべきクラスの1つは、エラーを処理するクラスです!

 
コメントありがとうございます。このユーティリティの正しい英語版は添付ファイルにあります。
 

フラッシュを使い忘れると、データが失われる可能性がある。

より良い解決策は次のようなものだろう:


private:
   void              flush(void);              // キャッシュをファイルにフラッシュする
//+------------------------------------------------------------------+
//| 初期化|
//+------------------------------------------------------------------+
void CLogger::deinit(void)
  {
   flush();  // データをフラッシュする
   FileClose(handleFile); // ファイルを閉じる
  }

データの保存が自動的に行われるようにする。

ps:誤字脱字があったらごめんなさい。

 

Dmitry Alexandrovich、あなたの仕事に感謝します。長い間このようなものを探していて、やっと見つけました ))

logmon.exeを改善するための提案として、ログのあるファイルを探すパスを指定できるような設定を作ってほしいです。

とはいえ、手をつけたら自分で完成させるかもしれませんが ))

もし他に何か有用なものがあれば、投稿してください。あなたのプログラミングと資料の提示のスタイルは、とても頭が悪いです )).

 

ヒストリカルデータでデバッグするとエラーが発生します。「MQL5 debugger failed to start debugging 'testlogger.ex5' on history」です。実際のデータでは問題なく動作します。

履歴上で動作させるには、何をいじればよいのか教えてください。