3.2. デバッグロギング
デバッグロギングは、デバッグ時に詳細な情報をアプリケーションログに追加する方法です。これにより、以下が可能になります。
- アプリケーションの通常の操作中のロギングの出力を最小限に抑えて、読みやすさを改善し、ディスク領域の使用量を削減します。
- 問題の解決時にアプリケーションの内部作業に関する詳細情報を表示します。
3.2.1. デバッグロギングの追加 リンクのコピーリンクがクリップボードにコピーされました!
この例では、デバッグパッケージ を使用しますが、デバッグロギングを処理できる その他のパッケージも利用可能です。
前提条件
- デバッグするアプリケーションがある。
手順
debugロギング定義を追加します。const debug = require('debug')('myexample');デバッグステートメントを追加します。
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'}`}); });デバッグ モジュールを
package.jsonに追加します。... "dependencies": { "debug": "^3.1.0" }アプリケーションによっては、このモジュールはすでに含まれている場合があります。たとえば、express generator を使用してアプリケーションを作成する場合、
debugモジュールはすでにpackage.jsonに追加されています。アプリケーションの依存関係をインストールします。
$ npm install
3.2.2. localhost でのデバッグログへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを起動し、デバッグロギングを有効にする場合は、DEBUG 環境変数を使用します。
前提条件
- デバッグロギングを使用するアプリケーション。
手順
アプリケーションを起動し、デバッグロギングを有効にする場合は、
DEBUG環境変数を設定します。$ DEBUG=myexample npm startdebugモジュールでは、ワイルドカード を使用してデバッグメッセージをフィルターできます。これはDEBUG環境変数を使用して設定されます。アプリケーションをテストしてデバッグロギングを呼び出します。
たとえば、次のコマンドは、
/api/greetingメソッドでname変数をログに記録するようにデバッグログが設定されている REST API レベル 0 アプリケーションの例に基づいています。$ curl http://localhost:8080/api/greeting?name=Sarahアプリケーションログを表示して、デバッグメッセージを表示します。
myexample name: Sarah +3m
3.2.3. OpenShift での Node.js デバッグログへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift のアプリケーション Pod で DEBUG 環境変数を使用して、デバッグロギングを有効にします。
前提条件
- デバッグロギングを使用するアプリケーション。
-
CLI クライアント
ocがインストールされている。
手順
ocCLI クライアントを使用して、OpenShift インスタンスにログインします。$ oc login ...アプリケーションを OpenShift にデプロイします。
$ npm run openshiftこれにより、
openshiftnpm スクリプトを実行します。これは nodeshift への直接呼び出しをラップします。Pod の名前を見つけ、ログを追跡して起動を監視します。
$ oc get pods .... $ oc logs -f pod/POD_NAME重要Pod が起動したら、このコマンドを実行したままにして、新しいのターミナルウィンドウで残りの手順を実行します。これにより、ログを 追跡 でき、そのログの新しいエントリーを確認することができます。
アプリケーションをテストします。
たとえば、次のコマンドは、
/api/greetingメソッドでname変数をログに記録するようにデバッグログが設定されている REST API レベル 0 アプリケーションの例に基づいています。$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah- Pod ログに戻り、ログにデバッグロギングメッセージがないことに注意してください。
DEBUG環境変数を設定して、デバッグロギングを有効にします。$ oc get dc ... $ oc set env dc DC_NAME DEBUG=myexamplePod ログに戻り、更新ロールアウトを監視します。
更新がロールアウトされると Pod が停止し、ログをフォローしなくなります。
新規 Pod の名前を見つけ、ログを追跡します。
$ oc get pods .... $ oc logs -f pod/POD_NAME重要Pod が起動したら、このコマンドを実行したままにして、別のターミナルウィンドウで残りの手順を実行します。これにより、ログを 追跡 でき、そのログの新しいエントリーを確認することができます。具体的には、ログにはデバッグメッセージが表示されます。
アプリケーションをテストして、デバッグロギングを呼び出します。
$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=SarahPod ログに戻り、デバッグメッセージを表示します。
... myexample name: Sarah +3m
デバッグロギングを無効にするには、Pod から DEBUG 環境変数を削除します。
$ oc set env dc DC_NAME DEBUG-
関連情報
環境変数の詳細は、OpenShift のドキュメント を参照してください。