最近のアクセス:
Log 外部オブジェクト

Log 外部オブジェクトを使用すると、メッセージをさまざまなレベル (それぞれ異なるストリームに割り当てられる) でログシステムに書き込むことができます。
イメージ:39668.png イメージ:39669.png

プロパティ

ありません。

メソッド

いずれのメソッドでも、書き込まれるデータを意味する "topic" (トピック) 値を指定できます。

Write メソッド

メッセージをログに書き込みます。必要に応じて、トピックと目的のログレベルを指定できます。
戻り値 なし
パラメーター Message:VarChar(1000) [ topic:VarChar(40) , logLevel:GeneXus.Common.LogLevel ]

Fatal メソッド

致命的エラーメッセージを (エラー フロー チャネル経由で) ログに書き込みます。
戻り値 なし
パラメーター Message: VarChar(1000) [ topic: VarChar(40) ]

Error メソッド

エラーメッセージを (エラー フロー チャネル経由で) ログに書き込みます。
戻り値 なし
パラメーター Message: VarChar(1000) [ topic: VarChar(40) ]

Warning メソッド

警告メッセージを (警告フローチャネル経由で) ログに書き込みます。
戻り値 なし
パラメーター Message: VarChar(1000) [ topic: VarChar(40) ]

Info メソッド

情報メッセージを (情報フローチャネル経由で) ログに書き込みます。
戻り値 なし
パラメーター Message: VarChar(1000) [ topic: VarChar(40) ]

Debug メソッド

デバッグメッセージを (デバッグ フロー チャネル経由で) ログに書き込みます。
戻り値 なし
パラメーター Message: VarChar(1000) [ topic: VarChar(40) ]
: "$" で始まるトピックを渡す場合は、ログメッセージはドル記号に続く文字列を文字通りにトピックとして使用します。そうでない場合は、文字列 "GeneXusUserLog" とその後に続くパラメーターとして渡したトピックの連結がトピックとなります: GeneXusUserLog。
"GeneXusUserLog" を別の文字列に変えて、USER_LOG_NAMESPACE という名前の環境変数を定義することもできます。

イベント

ありません。

ドメイン

LogLevel ドメイン

指定可能なログレベルを示す列挙型ドメインです。重大度の順序は次のとおりです:
FATAL 致命的エラーレベル
ERROR エラーレベル
WARNING 警告レベル
INFO 情報レベル
DEBUG デバッグレベル
OFF ログ無効

ネイティブモバイル

[ Default Log Level ] プロパティを Warning に設定し、クライアントイベントとして次のコードを記述したとします:
Event 'Test'
    Composite
        Log.Debug(!"Debug message",!"MyCompany.Test.TestSDLoggingDebug")
        Log.Info(!"Info message",!"MyCompany.Test.TestSDLoggingInfo")
        Log.Warning(!"Warning message",!"MyCompany.Test.TestSDLoggingWarning")
        Log.Error(!"Error message",!"MyCompany.Test.TestSDLoggingError")
    EndComposite
Endevent
Android の LogCat には次のメッセージが表示されます (「ネイティブモバイルでログを有効にする方法」を参照)。
イメージ:37875.png
この場合、 [ Log Level ] プロパティの設定に起因して警告メッセージとエラーメッセージしか表示されません。その他のメッセージ (デバッグと情報) は無視されます。
: ログメッセージがオンラインアプリケーションの LogCat/XCode に表示されるのは、クライアント側のイベントで Log 外部オブジェクトが実行された場合のみです。この場合、サーバー側の設定に応じて Start イベント、Refresh イベント、Load イベントでログが出力されます (次の例を参照)。

Web

[ User Log level ] プロパティを 6.All に設定し、 [ Log output ] プロパティを File に設定したとします。その後、次のようにイベントを記述します:
Event 'Test'
      Log.Write(!"Write message", !"MyCompany.Test.TestLoggingWrite",LogLEvel.DEBUG)
      Log.Debug(!"Debug message",!"MyCompany.Test.TestLoggingDebug")
      Log.Info(!"Info message",!"MyCompany.Test.TestLoggingInfo")
      Log.Warning(!"Warning message",!"MyCompany.Test.TestLoggingWarning")
      Log.Error(!"Error message",!"MyCompany.Test.TestLoggingError")
      Log.Fatal(!"Fatal message",!"MyCompany.Test.TestLoggingFatal")
Endevent
client.log ファイルには次のメッセージが記録されます:
イメージ:39455.png
注:
  • 次の文は同等です:
    msg(&string,status)
    Log.Debug(&string)
    Log.Write(&string,"",LogLevel.DEBUG)
  • トピックは既定でハードコーディングされた文字列 "GeneXusUserLog" に連結されます。

適用範囲

ジェネレーター: AppleAndroid.NET.NET FrameworkJava

使用可能バージョン

この外部オブジェクトは、GeneXus 15 Upgrade 11 以降で使用できます。

ベストプラクティス

モジュールを使用して GeneXus のインターフェース (API など) を共有する場合は、これらのガイドラインに従うことを強くお勧めします。
  • 操作に関するログメッセージは翻訳せずに常に英語 (推奨) で記述し、フィルタや検索を容易に実行できるようにします。そのためには、!"My log message" のように "!" 表記を使用します。
  • 各ログメッセージにトピックを追加し、メッセージを生成するオブジェクトを指定します。表記規則は次のとおりです:
    !"<会社>.<モジュール>.<オブジェクト>"
    例:
    !"GeneXus.GeneXus.Common.Notifications.SendNotification"
    ここで、GeneXus は会社、GeneXus.Common.Notifications はモジュール (ルートから)、SendNotification はオブジェクトを表します。
  • msg("<メッセージ>",status) の代わりに Log API を使用します。

参考情報

ネイティブモバイルでログを有効にする方法
[ Default Log Level ] プロパティ
[ Log Level ] プロパティ
UILogging サンプルのダウンロード
Apple 開発者向けの情報 - Debugging Tools
Android 開発者向けの情報 - Write and View Logs with Logcat
.NET クラウドでホストされているアプリケーションでトレース情報を確認する方法


サブページ
Created: 18/10/29 01:07 by Admin Last update: 24/12/20 00:52 by Admin
カテゴリ
Powered by GXwiki 3.0