« Raspberry Pi3 Lazarusのインストール | Main | Lazarus ARM リモートデバッグ (Remote Debug) 2016/8/28修正 »

August 24, 2016

LazLogger

デバッガでのデバッグは便利なのですが、 通信や機械を制御してる場合などでは通常ブレークポイントで停止することは出来ません。 このような場合にログ機能を使用することができます。

LazLoggerを使用するには

lazloggerunitに追加するだけでLazLoggerを使用することが出来ます。。

メニュー「ソース」-unituses節に追加」にてuses節にunitを追加ダイアログを表示させます。 そしてlazloggerを選択して、OKボタンをクリックします。

(すべてのユニットを表示をチェックしてない場合、ユーザのアプリ関連のunitしか表示されないので、クチェックしておきます)

 

 

 

 

 

 

使用方法

基本的には、write, writelnに近いですが、機能が追加されています。

① DebugLn: WriteLnと同じです(改行)

② DebugLnEnter/DebugLnExit: debuglnと同じですが、

  字下げの増加、減少をします

③ DbgOut: writeと同じ動作です

 

引数の書き方には以下の方法があります

① 単一文字列または(最大15個までの)文字列の並び

  DebugLn('Foo');

  DbgOut('a','b');

② 定数の配列

  DebugLn(['Foo=', 1, ' Bar=', anInteger]);

③ Format()関数と同じ書式(文字列+定数の配列)

  DbgOut('a %d',[1]);

 

dbgs関数では標準的な型を文字列に変換することができます。

/usr/share/lazarus/1.6/components/lazutils/LazLoggerImpl.inc」にて定義されています。

出力先

通常はstdoutに出力されます。

stdoutがクローズ状態の時は出力されません。(アプリケーションが {$AppType Gui}のとき、またはWindows において -WGオプションにてコンパイルされた時)

 

ファイルにログを書き出すこともできます。 LazLoggerは初期化の時に以下のことをします。

コマンドライン引数「 --debug-log=<file> (Lazarusから実行するときは: 「実行」-「実行パラメータ」-「コマンドライン引数」)をチェックします。 このパラメータが存在すれば、以降のデバッグ出力は<file>に書きだされます。

--debug-log=<file>」が存在しない時は、OSの環境変数に xxx_debuglogが存在するかどうかチェックします(ここでxxxは拡張子なしのプログラムファイル名)。該当する環境変数が存在すれば、デバッグ出力はそのファイルに書きだされます。

 

マルチスレッド

debuglnはスレッドセーフではありません。

対処としては

① Synchronizeをスレッド内で使用し、メインスレッドにてdebuglnが実行されるようにします。

② DbgOutThreadLogを使用することにより、 ファイル「'Log'+IntToStr(GetThreadID)」に

  ログを書き出すことができます。

 

 

« Raspberry Pi3 Lazarusのインストール | Main | Lazarus ARM リモートデバッグ (Remote Debug) 2016/8/28修正 »

Comments

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/51554/64102442

Listed below are links to weblogs that reference LazLogger:

« Raspberry Pi3 Lazarusのインストール | Main | Lazarus ARM リモートデバッグ (Remote Debug) 2016/8/28修正 »

September 2017
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

大規模災害に備える

他のアカウント

無料ブログはココログ

Recent Trackbacks