Использование отчета об ошибках Google Cloud Platform с ExpressJS
Я поменял ExpressJS
заявление от Heroku
в Google App Engine
,
Теперь все работает нормально.
Но мне любопытно, как отладить мое приложение, если некоторые исключения происходят на GAE
,
На heroku
, Я могу сделать heroku logs -t
отследить ошибки. Я могу проверить переменную, напечатанную console.error(var)
также.
Тем не менее, я не знаю, как сделать то же самое на GAE
,
Я проверил ведение журнала Stack Driver, кажется, что он показывает только некоторые данные каждого HTTP-запроса вместо подробных журналов, таких как heroku
,
Я обнаружил, что существует служба отчетов об ошибках драйвера стека. Это может то, что я хочу.
Вот учебник, рассказывающий нам, как настроить. Но шаги сбивают меня с толку.
У кого-нибудь есть опыт настройки отчетов об ошибках?
Я нахожу более четкие шаги для настройки этого.
Большое спасибо и ценится!
2 ответа
Для отчетов об ошибках Stackdriver:
Вы можете использовать код, аналогичный тому, который рекомендован для Google Compute Engine: https://cloud.google.com/error-reporting/docs/setup/compute-engine
Вот что сработало для меня, используя Express и Winston в гибкой среде App Engine:
var winston = require('winston');
winston.add(winston.transports.File, { filename: '/var/log/app_engine/custom_logs/my.errors.json' });
var report = function (err, req) {
var payload = {
serviceContext: {
service: 'my service',
},
message: err.stack,
context: {
httpRequest: {
url: req.originalUrl,
method: req.method,
referrer: req.header('Referer'),
userAgent: req.header('User-Agent'),
remoteIp: req.ip,
responseStatusCode: 500,
}
}
};
winston.error (payload);
};
// Handle errors
app.use(function (err, req, res, next) {
report(err, req);
res.status(500).send(err.response || 'Something broke!');
});
Для ведения журнала Stackdriver:
Действительно, request_log
содержит только записи журнала HTTP-запросов в App Engine flex. Посмотри в stdout
войти, чтобы увидеть вывод вашего приложения.
Если вы просто хотите прочитать данные из журналов, вы можете попробовать:
$ gcloud preview app logs read
2016-05-30 18:46:29 default[alpha2] saved to datastore: mountain biking
2016-05-30 18:46:29 default[alpha2] saved to datastore: adventure
2016-05-30 18:46:29 default[alpha2] saved to datastore: mountain bike
2016-05-30 18:46:29 default[alpha2] saved to datastore: cycle sport