Log 設定¶
この記事では、HarmonyOS Log の初期設定について説明します。
初期設定¶
import { FTSDK, FTLoggerConfig, Status } from '@guancecloud/ft_sdk/Index';
const logConfig = new FTLoggerConfig()
.setSamplingRate(1.0)
.setEnableCustomLog(true)
.setEnableConsoleLog(true, '[business]')
.setLogLevelFilters([
Status.ERROR,
Status.WARN,
Status.INFO,
Status.DEBUG
])
.setEnableLinkRumData(true)
.addGlobalContext('log_source', 'business')
.setLogCacheLimitCount(10000);
FTSDK.installLogConfig(logConfig);
| メソッド | 型 | 必須 | 説明 |
|---|---|---|---|
setSamplingRate |
number |
任意 | ログのサンプリングレート。範囲は [0.0, 1.0]、デフォルトは 1.0 |
setEnableCustomLog |
boolean |
任意 | カスタムログを有効にするかどうか。デフォルトは false |
setEnableConsoleLog |
enable: boolean, prefix?: string |
任意 | コンソールログを送信するかどうか。この設定は Hvigor Plugin に依存し、デフォルトは false です。console.log、debug、info、warn、error、trace に加えて、@ohos.hilog または @kit.PerformanceAnalysisKit からインポートした hilog.debug、info、warn、error、fatal をサポートします。ログレベルは次のように対応します。log、info -> info、debug、trace -> debug、warn -> warn、error -> error、fatal -> fatal。prefix には通常のメッセージプレフィックス、または { で始まる DataKit 収集ルールを指定できます。詳細はコンソールログフィルターを参照してください。この機能には ft-sdk 0.1.17 以降と @cloudcare/hvigor-ohos-plugin 0.1.1 以降が必要です |
setEnableLinkRumData |
boolean |
任意 | RUM データを関連付けるかどうか。デフォルトは false |
setLogLevelFilters |
Array<Status \| string \| { name: string }> |
任意 | ログレベルフィルター。指定可能な値は ERROR、WARN、INFO、DEBUG です |
addGlobalContext |
Dictionary |
任意 | Log のグローバル属性を追加します。key,value をサポートします。追加ルールはこちらを参照してください |
addGlobalContext |
key: string, value: object |
任意 | Log のグローバル属性を追加します。追加ルールはこちらを参照してください |
setLogCacheLimitCount |
number |
任意 | ログデータのキャッシュ数の上限。デフォルトは 5000、最小値は 1000 |
setLogCacheDiscardStrategy |
LogCacheDiscard |
任意 | ログが上限に達した後のログ破棄ルールを設定します。デフォルトは LogCacheDiscard.DISCARD です。DISCARD は追加データを破棄し、DISCARD_OLDEST は古いデータを破棄します |
コンソールログフィルター¶
setEnableConsoleLog(true, prefix) の 2 番目の引数は、自動収集される console.* および hilog.* ログをフィルタリングするために使用します。
- 通常の文字列を渡す場合は、後方互換の動作を維持し、メッセージがその文字列で始まるログのみを収集します。渡さない場合はフィルタリングされません。
- 最初の非空白文字が
{である文字列を渡す場合は、DataKit ルール構文に従って許可ルールとして処理します。ルールに一致したログは SDK キューに入り、一致しないログはキューに入る前に破棄されます。複数のルールブロック間は「OR」関係です。
ルールでは message、log_source(console または hilog)を使用できます。hilog では tag と domain も使用できます。ログレベルは引き続き setLogLevelFilters(...) で独立して制御されます。
const logConfig = new FTLoggerConfig().setEnableConsoleLog(true,
"{ log_source = 'hilog' and tag = 'Network' and message match ['^HTTP'] }");
Logger でのログ出力¶
FTLogger でカスタムログを送信する前に、setEnableCustomLog(true) を有効にする必要があります。1 件のログ内容の最大サイズは 30 KB で、超過分は切り捨てられます。
使用方法¶
/**
* カスタムログを 1 件送信します。
*
* @param content ログの内容。
* @param status ログレベル。`Status` またはレベル文字列を指定できます。
* @param property 追加属性(オプション)。
* @param isSilence ミュート処理を行うかどうか(オプション)。
*/
FTLogger.logBackground(
content: string,
status: Status | string,
property?: Map<string, object>,
isSilence?: boolean
): void
コード例¶
import { FTLogger, Status } from '@guancecloud/ft_sdk/Index';
// ログを 1 件送信します。
FTLogger.logBackground('登录成功', Status.INFO);
// 追加属性を渡します。
const property = new Map<string, object>();
property.set('user_id', new String('user-001'));
FTLogger.logBackground('支付完成', Status.INFO, property);
ログレベル¶
| メソッド名 | 意味 |
|---|---|
| Status.TRACE | トレース |
| Status.DEBUG | デバッグ |
| Status.INFO | 情報 |
| Status.WARN | 警告 |
| Status.ERROR | エラー |
| Status.FATAL | 致命的 |
推奨事項¶
setLogLevelFilters(...)はFTLoggerのビジネスログの送信レベルを制御します。SDK 内部の診断ログのsetSdkLogLevel(...)とは独立しています。setEnableConsoleLog(...)とsetEnableCustomLog(...)は独立しています。前者はconsole.*およびhilog.*ログの自動収集に使用し、Hvigor Plugin のインストールと設定が必要です。後者はFTLoggerによるカスタムログの手動送信に使用し、プラグインのインストールは不要です。- デバッグ段階では、
setEnableCustomLog(true)、setDebug(true)、SDK デバッグログ を組み合わせて収集パイプラインを検証できます。 - ログをユーザー行動、ページ、リソースデータと関連付けて分析したい場合は、
setEnableLinkRumData(true)を同時に有効にすることを推奨します。 - ログ量が多い場合は、サンプリングレートとレベルフィルターで送信量を制御できます。