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