ログレベルの変更
このセクションでは、Amplify ロガーを使用する際にアプリケーションのログレベルを設定する方法について学びます。これは、ユースケースに最適なログレベルを決定し、Amazon CloudWatch にキャプチャしたいエラーまたは警告のレベルを決定するのに役立ちます。
デフォルトログレベルを変更する
以下は、デフォルトログレベルを WARN に設定する例です:
loggingConstraints の下の defaultLogLevel フィールドを更新します。
{ "awsCloudWatchLoggingPlugin": { "enable": true, "logGroupName": "<log-group-name>", "region": "<region>", "localStoreMaxSizeInMB": 1, "flushIntervalInSeconds": 60, "loggingConstraints": { "defaultLogLevel": "WARN" } }}サポートされているログレベルは以下の通りです:
ERRORWARNINFODEBUGVERBOSENONE
ログレベルを NONE に設定すると、事実上ログが無効になります。
AWSCloudWatchLoggingPlugin の初期化と設定時にデフォルトログレベルを指定します。
do { let loggingConstraints = LoggingConstraints(defaultLogLevel: .warn) let loggingConfiguration = AWSCloudWatchLoggingPluginConfiguration(logGroupName: "<log-group-name>", region: "<region>", loggingConstraints: loggingConstraints) let loggingPlugin = AWSCloudWatchLoggingPlugin(loggingPluginConfiguration: loggingConfiguration) try Amplify.add(plugin: loggingPlugin)} catch { assert(false, "Error initializing Amplify: \(error)")}サポートされているログレベルは以下の通りです:
LogLevel.errorLogLevel.warnLogLevel.infoLogLevel.debugLogLevel.verboseLogLevel.noneログレベルを LogLevel.none に設定すると、事実上ログが無効になります。
カテゴリ別にログレベルを設定する
各 Amplify カテゴリは、独自のログレベルを持つように設定できます。
以下は、Storage と Auth カテゴリに異なるログレベルを設定する例です。
categoryLogLevel セクションを追加し、各カテゴリとそのログレベルを指定します。
{ "awsCloudWatchLoggingPlugin": { "enable": true, "logGroupName": "<log-group-name>", "region": "<region>", "localStoreMaxSizeInMB": 1, "flushIntervalInSeconds": 60, "loggingConstraints": { "defaultLogLevel": "ERROR", "categoryLogLevel": { "Authentication": "VERBOSE", "Storage": "DEBUG" } } }}特定のカテゴリのログを無効にするには、ログレベルを NONE に設定します。
AWSCloudWatchLoggingPlugin の初期化と設定時にカテゴリとそれに対応するログレベルの辞書を指定します。
do { let categoryLogLevels: [String: LogLevel] = ["Authentication": .verbose, "Storage": .debug] let loggingConstraints = LoggingConstraints(defaultLogLevel: .warn, categoryLogLevel: categoryLogLevels) let loggingConfiguration = AWSCloudWatchLoggingPluginConfiguration(logGroupName: "<log-group-name>", region: "<region>", loggingConstraints: loggingConstraints) let loggingPlugin = AWSCloudWatchLoggingPlugin(loggingPluginConfiguration: loggingConfiguration) try Amplify.add(plugin: loggingPlugin)} catch { assert(false, "Error initializing Amplify: \(error)")}特定のカテゴリのログを無効にするには、ログレベルを LogLevel.none に設定します。
以下は、Amplify がライブラリからのエラーを自動的にログする際に使用されるデフォルトの既存 Amplify カテゴリ名です。
AnalyticsAPIAuthenticationDataStoreGeoHubLoggingPredictionsPushNotificationsStorage