Чтобы зарегистрировать объекты как одну запись в стекдрайвере, я использую клиентскую библиотеку. [1]
Используя [1], вот как выглядит мое приложение. js выглядит так:
'use strict';
const express = require('express');
const {Logging} = require('@google-cloud/logging');
const app = express();
const logging = new Logging();
const log = logging.log('projects/[PROJECT-ID/logs/[ANY-LOG-NAME]');
const resource = {type: 'gae_app',
labels: {
'project_id': '[PROJECT-ID]',
'module_id': '[SERVICE-NAME]',
'version_id': '[ANY-VERSION-ID]',
'zone': '[CURRENT-APPENGINE-REGION]'
}
};
const entry = log.entry({resource},"Plain message one");
let dict1 = {"First name": "Jhon",
"Last name": "Smith",
"Age":32,
"Gender": "Male" };
const secondentry = log.entry({resource},{dict1});
app.get('/', (req, res) => {
console.log('Using logging client library...');
log.write([entry,secondentry]);
res.status(200).send('Printing some messages to the console').end();
});
Это мой пакет. json:
{
"name": "node101",
"engines": {
"node": ">=8.0.0"
},
"scripts": {
"start": "node app.js",
"test": "mocha --exit test/*.test.js"
},
"dependencies": {
"express": "^4.16.3",
"@google-cloud/logging": "^7.3.0"
},
"devDependencies": {
"mocha": "^7.0.0",
"supertest": "^4.0.2"
}
}
Важно правильно настроить переменную ресурса, иначе ваш журнал не появится. Я использовал [2] [3] для настройки переменной ресурса, вы можете посмотреть ее для получения дополнительной информации о других ресурсах.
Я развертываю, используя флаг --version; значение флага равно одной заданной переменной ресурса в приложении. js
gcloud app deploy --version='[ANY-VERSION_ID]'
[1] https://cloud.google.com/logging/docs/api/tasks/creating-logs#writing_log_entries [2] https://cloud.google.com/monitoring/api/resources#tag_gae_app [3] https://cloud.google.com/logging/docs/reference/v2/rest/v2/MonitoredResource