3.2. 调试日志记录
调试日志记录是在调试时向应用程序日志添加详细信息的方法。这可让您:
- 在应用正常操作期间保留最少的日志输出,以提高可读性并减少磁盘空间使用率。
- 在解决问题时,查看有关应用程序内部工作的详细信息。
3.2.1. 添加调试日志记录
本例使用 debug 软件包,但还有其他软件包 可以处理调试日志。
先决条件
- 您有一个要调试的应用程序。
流程
添加
debug
日志记录定义。const debug = require('debug')('myexample');
const debug = require('debug')('myexample');
Copy to Clipboard Copied! 添加 debug 语句。
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'}`}); });
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'}`}); });
Copy to Clipboard Copied! 将 debug 模块添加到
package.json
。... "dependencies": { "debug": "^3.1.0" }
... "dependencies": { "debug": "^3.1.0" }
Copy to Clipboard Copied! 根据您的应用程序,可能已经包含此模块。例如,在使用 express 生成器 创建应用程序时,
debug
模块已添加到package.json
中。安装应用依赖项。
npm install
$ npm install
Copy to Clipboard Copied!
3.2.2. 访问 localhost 上的调试日志
在启动应用时,请使用 DEBUG
环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
流程
在启动应用时设置
DEBUG
环境变量以启用调试日志记录。DEBUG=myexample npm start
$ DEBUG=myexample npm start
Copy to Clipboard Copied! debug
模块 可以使用通配符 来过滤调试消息。这使用DEBUG
环境变量进行设置。测试应用来调用调试日志记录。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting
方法中记录name
变量:curl http://localhost:8080/api/greeting?name=Sarah
$ curl http://localhost:8080/api/greeting?name=Sarah
Copy to Clipboard Copied! 查看应用程序日志以查看您的调试信息。
myexample name: Sarah +3m
myexample name: Sarah +3m
Copy to Clipboard Copied!
3.2.3. 访问 OpenShift 上的 Node.js 调试日志
使用 OpenShift 中的应用容器集中的 DEBUG
环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
-
安装了
oc
CLI 客户端。
流程
使用
oc
CLI 客户端登录 OpenShift 实例。oc login ...
$ oc login ...
Copy to Clipboard Copied! 将应用部署到 OpenShift。
npm run openshift
$ npm run openshift
Copy to Clipboard Copied! 此操作运行
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! 重要pod 启动后,让此命令保持运行,并在新的终端窗口中执行剩余的步骤。这可让您 跟踪 日志并查看组成的新条目。
测试应用。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting
方法中记录name
变量:oc get routes curl $APPLICATION_ROUTE/api/greeting?name=Sarah
$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
Copy to Clipboard Copied! - 返回到 pod 日志,并注意日志中没有 debug 日志信息。
设置
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! 返回到 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! 重要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! 返回到 pod 日志以查看 debug 信息。
... myexample name: Sarah +3m
... myexample name: Sarah +3m
Copy to Clipboard Copied!
要禁用调试日志记录,请从 pod 中删除 DEBUG
环境变量:
oc set env dc DC_NAME DEBUG-
$ oc set env dc DC_NAME DEBUG-
其他资源
有关环境变量的更多详细信息,请参阅 OpenShift 文档。