3.2. デバッグロギング


デバッグロギングは、デバッグ時に詳細な情報をアプリケーションログに追加する方法です。これにより、以下が可能になります。

  • アプリケーションの通常の操作中のロギングの出力を最小限に抑えて、読みやすさを改善し、ディスク領域の使用量を削減します。
  • 問題の解決時にアプリケーションの内部作業に関する詳細情報を表示します。

3.2.1. デバッグロギングの追加

この例では、デバッグパッケージ を使用しますが、デバッグロギングを処理できる その他のパッケージも利用可能です

前提条件

  • デバッグするアプリケーションがある。

手順

  1. debug ロギング定義を追加します。

    const debug = require('debug')('myexample');
  2. デバッグステートメントを追加します。

    app.use('/api/greeting', (request, response) => {
      const name = request.query ? request.query.name : undefined;
      //log name in debugging
      debug('name: '+name);
      response.send({content: `Hello, ${name || 'World'}`});
    });
  3. デバッグ モジュールを package.json に追加します。

    ...
    "dependencies": {
        "debug": "^3.1.0"
      }

    アプリケーションによっては、このモジュールはすでに含まれている場合があります。たとえば、express generator を使用してアプリケーションを作成する場合、debug モジュールはすでに package.json に追加されています。

  4. アプリケーションの依存関係をインストールします。

    $ npm install

3.2.2. localhost でのデバッグログへのアクセス

アプリケーションを起動し、デバッグロギングを有効にする場合は、DEBUG 環境変数を使用します。

前提条件

  • デバッグロギングを使用するアプリケーション。

手順

  1. アプリケーションを起動し、デバッグロギングを有効にする場合は、DEBUG 環境変数を設定します。

    $ DEBUG=myexample npm start

    debug モジュールでは、ワイルドカード を使用してデバッグメッセージをフィルターできます。これは DEBUG 環境変数を使用して設定されます。

  2. アプリケーションをテストしてデバッグロギングを呼び出します。

    たとえば、次のコマンドは、/api/greeting メソッドで name 変数をログに記録するようにデバッグログが設定されている REST API レベル 0 アプリケーションの例に基づいています。

    $ curl http://localhost:8080/api/greeting?name=Sarah
  3. アプリケーションログを表示して、デバッグメッセージを表示します。

    myexample name: Sarah +3m

3.2.3. OpenShift での Node.js デバッグログへのアクセス

OpenShift のアプリケーション Pod で DEBUG 環境変数を使用して、デバッグロギングを有効にします。

前提条件

  • デバッグロギングを使用するアプリケーション。
  • CLI クライアント oc がインストールされている。

手順

  1. oc CLI クライアントを使用して、OpenShift インスタンスにログインします。

    $ oc login ...
  2. アプリケーションを OpenShift にデプロイします。

    $ npm run openshift

    これにより、openshift npm スクリプトを実行します。これは nodeshift への直接呼び出しをラップします。

  3. Pod の名前を見つけ、ログを追跡して起動を監視します。

    $ oc get pods
    ....
    $ oc logs -f pod/POD_NAME
    重要

    Pod が起動したら、このコマンドを実行したままにして、新しいのターミナルウィンドウで残りの手順を実行します。これにより、ログを 追跡 でき、そのログの新しいエントリーを確認することができます。

  4. アプリケーションをテストします。

    たとえば、次のコマンドは、/api/greeting メソッドで name 変数をログに記録するようにデバッグログが設定されている REST API レベル 0 アプリケーションの例に基づいています。

    $ oc get routes
    ...
    $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
  5. Pod ログに戻り、ログにデバッグロギングメッセージがないことに注意してください。
  6. DEBUG 環境変数を設定して、デバッグロギングを有効にします。

    $ oc get dc
    ...
    $ oc set env dc DC_NAME DEBUG=myexample
  7. Pod ログに戻り、更新ロールアウトを監視します。

    更新がロールアウトされると Pod が停止し、ログをフォローしなくなります。

  8. 新規 Pod の名前を見つけ、ログを追跡します。

    $ oc get pods
    ....
    $ oc logs -f pod/POD_NAME
    重要

    Pod が起動したら、このコマンドを実行したままにして、別のターミナルウィンドウで残りの手順を実行します。これにより、ログを 追跡 でき、そのログの新しいエントリーを確認することができます。具体的には、ログにはデバッグメッセージが表示されます。

  9. アプリケーションをテストして、デバッグロギングを呼び出します。

    $ oc get routes
    ...
    $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
  10. Pod ログに戻り、デバッグメッセージを表示します。

    ...
    myexample name: Sarah +3m

デバッグロギングを無効にするには、Pod から DEBUG 環境変数を削除します。

$ oc set env dc DC_NAME DEBUG-

関連情報

環境変数の詳細は、OpenShift のドキュメント を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.