Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated Nov 14, 2025

ロギングの設定

Amplify Logger により、アプリの問題をトラブルシューティングおよびデバッグしてカスタマーに最高のエクスペリエンスを提供できます。Amplify ライブラリによるエラーメッセージをログに記録し、カスタムログを追加して Amazon CloudWatch に送信できます。Amplify Logger を使用すると、ロギング構成をリモートで変更してロギングレベルを調整したり、カスタマー ID の許可リストを追加して、本番環境でのアプリの問題をより詳細に検出できます。

前提条件

  • Android SDK API レベル 24(Android 7.0)以上をターゲットとし、Amplify ライブラリが統合された Android アプリケーション
  • Amplify Logger は Amplify Android SDK バージョン 2.11.0 以降で利用可能です

Amplify ライブラリのインストール

Gradle Scripts を展開し、build.gradle (Module: app) を開きます。クイックスタートガイドの手順に従って、Amplify の構成はすでに完了しています。

これらのライブラリを dependencies ブロックに追加します:

app/build.gradle.kts
android {
compileOptions {
// Support for modern Java features
isCoreLibraryDesugaringEnabled = true
}
}
dependencies {
// Amplify API dependencies
implementation("com.amplifyframework:aws-auth-cognito:ANDROID_VERSION")
implementation("com.amplifyframework:aws-logging-cloudwatch:ANDROID_VERSION")
// ... other dependencies
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:ANDROID_DESUGAR_VERSION")
}

aws-auth-cognito は Amazon CloudWatch への認証を提供するために使用されます。

Sync Now をクリックします。

バックエンドの設定

カスタム CDK リソースを追加するには、こちらのガイドに従ってください。

ログを送信するために Amazon CloudWatch にロググループを作成する必要があります。AWS Console を使用してロググループを手動で作成することも、Amplify と AWS CDK を使用して AWS リソースをプロビジョニングおよびデプロイすることもできます。

以下は、Amazon CloudWatch ロググループを作成し、Amplify ロールへの権限ポリシーを作成および割り当てるサンプル CDK コンストラクトです。

CDK コンストラクトで構成された <log-group-name><region> は、後で Amplify Logger プラグインを初期化するときに使用されます。

プレースホルダー値を独自の値に置き換えてください:

  • <log-group-name> はログが送信されるロググループです。このサンプル CDK コンストラクトには、前のステップで既に作成した可能性がある CloudWatch ロググループを作成するロジックが含まれていることに注意してください。
  • <amplify-authenticated-role-name><amplify-unauthenticated-role-name> は、Amplify CLI を使用した Amplify Auth 構成の一部として作成された Amplify ロールです。
import * as path from "node:path"
import * as cdk from "aws-cdk-lib"
import * as logs from "aws-cdk-lib/aws-logs"
import * as iam from "aws-cdk-lib/aws-iam"
import { Construct } from "constructs"
export class RemoteLoggingConstraintsConstruct extends Construct {
constructor(scope: Construct, id: string, props: RemoteLoggingConstraintProps) {
super(scope, id)
const region = cdk.Stack.of(this).region
const account = cdk.Stack.of(this).account
const logGroupName = <log-group-name>
const authRoleName = <amplify-authenticated-role-name>
const unAuthRoleName = <amplify-unauthenticated-role-name>
new logs.LogGroup(this, 'Log Group', {
logGroupName: logGroupName,
retention: logs.RetentionDays.INFINITE
})
const authRole = iam.Role.fromRoleName(this, "Auth-Role", authRoleName)
const unAuthRole = iam.Role.fromRoleName(this, "UnAuth-Role", unAuthRoleName)
const logResource = `arn:aws:logs:${region}:${account}:log-group:${logGroupName}:log-stream:*`
const logIAMPolicy = new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
resources: [logResource],
actions: ["logs:PutLogEvents", "logs:DescribeLogStreams", "logs:CreateLogStream"]
})
authRole.addToPrincipalPolicy(logIAMPolicy)
unAuthRole.addToPrincipalPolicy(logIAMPolicy)
new cdk.CfnOutput(this, 'CloudWatchLogGroupName', { value: logGroupName });
new cdk.CfnOutput(this, 'CloudWatchRegion', { value: region });
}
}

<log-group-name><region> は、ターミナルに出力されます。この情報を使用して、次のセクションで Amplify ライブラリをセットアップできます。

Amplify ロギングの初期化

このセクションでは、Amplify ライブラリを初期化してセットアップします。Logger は、設定ファイルを使用するか、アプリの初期化時にコード内で構成できます。

モバイルアプリで、amplify_outputs.json ファイルと同じ場所に amplifyconfiguration_logging.json を作成して追加します。

<log-group-name><region> は、バックエンドリソースのプロビジョニングの一部として CDK コンストラクトで指定した値です。これらの値は、サンプル CDK コンストラクトをデプロイするときの出力ログの最後にも記載されています。構成ファイルは、ロギングプラグインが、どこに、いつ、どのログを送信するかを知るためのデータソースです。以下の例は、ロギングプラグインをすべてのログをログレベル ERROR で 60 秒間隔で自動的に送信し、ローカルに最大 1MB まで保存するように構成しています。

{
"awsCloudWatchLoggingPlugin": {
"enable": true,
"logGroupName": "<log-group-name>",
"region": "<region>",
"localStoreMaxSizeInMB": 1,
"flushIntervalInSeconds": 60,
"loggingConstraints": {
"defaultLogLevel": "ERROR"
}
}
}

Amplify Logger と Amplify Auth カテゴリをアプリで使用するには、Amplify.addPlugin()Amplify.configure() メソッドを呼び出して、対応するプラグインを作成および構成する必要があります。

メインの Application ファイルの先頭に次のインポートを追加します:

Amplify.configure 関数を呼び出す前に、コンソールから amplify_outputs.json ファイルをダウンロードするか、次のコマンドで生成してください:

Terminal
npx ampx generate outputs --app-id <app-id> --branch main --out-dir app/src/main/res/raw

次に、生成またはダウンロードしたファイルがアプリケーション(例:app/src/main/res/raw)の適切なリソースディレクトリに配置されていることを確認してください。そうしないと、アプリケーションをコンパイルできません。

import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
import com.amplifyframework.core.Amplify;
import com.amplifyframework.core.configuration.AmplifyOutputs;
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin;
Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.addPlugin(new AWSCloudWatchLoggingPlugin());

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.addPlugin(new AWSCloudWatchLoggingPlugin());
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin
import com.amplifyframework.core.Amplify
import com.amplifyframework.core.configuration.AmplifyOutputs
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin

アプリケーションクラスの onCreate() メソッドに次のコードを追加します。Amplify がロギングプラグインを初期化するとき、アプリにバンドルされている amplifyconfiguration_logging.json の構成を自動的に見つけてロードします。

Amplify.addPlugin(AWSCognitoAuthPlugin())
Amplify.addPlugin(AWSCloudWatchLoggingPlugin())

クラスは次のようになります:

class MyAmplifyApp : Application() {
override fun onCreate() {
super.onCreate()
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
Amplify.addPlugin(AWSCognitoAuthPlugin())
Amplify.addPlugin(AWSCloudWatchLoggingPlugin())
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), applicationContext)
Log.i("MyAmplifyApp", "Initialized Amplify")
} catch (error: AmplifyException) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error)
}
}
}
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
import com.amplifyframework.core.configuration.AmplifyOutputs;
import com.amplifyframework.rx.RxAmplify;
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin;
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
RxAmplify.addPlugin(new AWSCloudWatchLoggingPlugin());

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
RxAmplify.addPlugin(new AWSCloudWatchLoggingPlugin());
RxAmplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}

Amplify Logger と Amplify Auth カテゴリをアプリで使用するには、Amplify.addPlugin()Amplify.configure() メソッドを呼び出して、対応するプラグインを作成および構成する必要があります。

メインの Application ファイルの先頭に次のインポートを追加します:

import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
import com.amplifyframework.core.Amplify;
import com.amplifyframework.core.configuration.AmplifyOutputs;
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin;

その初期化子に次のコードを追加します。初期化子がない場合は、デフォルトを作成できます。<log-group-name><region> は、バックエンドリソースのプロビジョニングの一部として CDK コンストラクトで指定した値です。これらの値は、サンプル CDK コンストラクトをデプロイするときの出力ログの最後にも記載されています。 以下の例は、ロギングプラグインをすべてのログをログレベル ERROR で 60 秒間隔で自動的に送信し、ローカルに最大 1MB まで保存するように構成しています。

Amplify.addPlugin(new AWSCognitoAuthPlugin());
AWSCloudWatchLoggingPluginConfiguration config = new AWSCloudWatchLoggingPluginConfiguration (<log-group-name>,<region>,1, 60);
Amplify.addPlugin(new AWSCloudWatchLoggingPlugin(config));

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
Amplify.addPlugin(new AWSCognitoAuthPlugin());
AWSCloudWatchLoggingPluginConfiguration config = new AWSCloudWatchLoggingPluginConfiguration (<log-group-name>,<region>,1,60);
Amplify.addPlugin(new AWSCloudWatchLoggingPlugin(config));
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}
import com.amplifyframework.core.Amplify
import com.amplifyframework.core.configuration.AmplifyOutputs
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin

アプリケーションクラスの onCreate() メソッドに次のコードを追加します。

Amplify.addPlugin(AWSCognitoAuthPlugin())
val config = AWSCloudWatchLoggingPluginConfiguration(logGroupName = <log-group-name>, region = <region>, localStoreMaxSizeInMB = 1, flushIntervalInSeconds = 60)
Amplify.addPlugin(AWSCloudWatchLoggingPlugin(config))

クラスは次のようになります:

class MyAmplifyApp : Application() {
override fun onCreate() {
super.onCreate()
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
Amplify.addPlugin(AWSCognitoAuthPlugin())
val config = AWSCloudWatchLoggingPluginConfiguration(logGroupName = <log-group-name>, region = <region>, localStoreMaxSizeInMB = 1, flushIntervalInSeconds = 60)
Amplify.addPlugin(AWSCloudWatchLoggingPlugin(config))
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), applicationContext)
Log.i("MyAmplifyApp", "Initialized Amplify")
} catch (error: AmplifyException) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error)
}
}
}
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
import com.amplifyframework.core.configuration.AmplifyOutputs;
import com.amplifyframework.rx.RxAmplify;
import com.amplifyframework.logging.cloudwatch.AWSCloudWatchLoggingPlugin;
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
AWSCloudWatchLoggingPluginConfiguration config = new AWSCloudWatchLoggingPluginConfiguration (<log-group-name>,<region>, 1,60);
RxAmplify.addPlugin(new AWSCloudWatchLoggingPlugin(config));

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
// Add these lines to add the AWSCognitoAuthPlugin and AWSCloudWatchLoggingPlugin plugins
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
AWSCloudWatchLoggingPluginConfiguration config = new AWSCloudWatchLoggingPluginConfiguration (<log-group-name>,<region>,1,60);
RxAmplify.addPlugin(new AWSCloudWatchLoggingPlugin(config));
RxAmplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}