LoginSignup
4
5

More than 1 year has passed since last update.

Amplify Loggerの使い方

Last updated at Posted at 2021-10-22

AWS Amplifyの utilitiesに loggerがある。
https://docs.amplify.aws/lib/utilities/logger/q/platform/js/

使い方

import { Logger } from 'aws-amplify';

const logger = new Logger("my-logger");
logger.warn("warning message");

デバッグコンソールにはこのように出力される。

[WARN] 56:32.69 my-logger - warning message

注意点としては、インスタンスに指定されているレベル以上のログしか出力されないということ。
ログレベルは上から順に以下のようになっている。

  • ERROR
  • WARN
  • INFO
  • DEBUG
  • VERBOSE

デフォルトのログレベルはWARN。
例えば、以下のようなloggerがある場合、WARN・ERRORのログでないと出力されないので logger.info を実行してもログは出力れない。

import { Logger } from 'aws-amplify';

const logger = new Logger("my-logger");
logger.info("this is info message");  // これはconsoleに出力されない

INFOレベルのログを出したい場合は以下のようにインスタンス生成時にログレベルを指定しておく必要がある。

import { Logger } from 'aws-amplify';

const logger = new Logger("my-logger", "INFO");
logger.info("this is info message");  // これならconsoleに出力される

グローバルログレベルによる出力制御

また、グローバルログレベルを指定することで、インスタンスのログレベルを上書きすることができる。

import { Logger } from 'aws-amplify';

const logger = new Logger("my-logger");
logger.info("this is info message");  // これはconsoleに出力されない

window.LOG_LEVEL = "INFO"; // グローバルログレベルを指定

logger.info("this is info message again!");  // これはconsoleに出力される

実践的な使い方としては、インスタンス作成時はデフォルトのログレベルにしておいて、環境ごとにグローバルログレベルを指定して出し方を変えるというやり方のほうが良さそう。

const logger = new Logger("my-logger");

if (env === "development") {
  window.LOG_LEVEL = 'DEBUG';
else if (env === "staging")
  window.LOG_LEVEL = "INFO";
}

logger.debug("develop の環境のみで出力されるメッセージ")
logger.info("stagingとdevelop の環境で出力されるメッセージ")
logger.warn("production, staging, develop の環境で出力されるメッセージ")

こうしてやれば開発環境ではデバッグログを出したいが、本番ではWARN以上のログしか出したくない、という場合にもコードをいじらずにログを出せるので便利。

余談

もともとはこちらがやりたかったのだけど、CloudWatchProvider をセットすることで amplify loggerを通してCloudWatchにログを流せるみたい。

ブログにも同じ記事を載せました。
https://jacoyutorius.hatenablog.com/entry/2021/10/23/072319?_ga=2.37304928.1379295306.1634940857-427508824.1591822362

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5