我们正在使用Google App Engine自定义运行时为我们的移动应用程序运行Node.js Serverside代码。
HTTP请求日志记录工作正常,但我们的自定义日志存在问题。
我们使用winston和log4js作为日志框架,将我们的应用程序特定日志记录到日志文件中。
在本地运行服务器一切正常,但在GAE上找不到日志文件。
我们在GAE中找不到很多关于Node.js登录的信息,App Engine是否需要特殊配置?
是否可以在没有连接服务器的情况下访问海关日志?
答案 0 :(得分:1)
你可能已经解决了这个问题,但万一其他人需要它。
正如https://cloud.google.com/appengine/articles/logging
中的Cloud Logging Doc所述"Cloud Logging and Managed VMs apps
Applications using App Engine Managed VMs should write custom log files to the VM's log directory at /var/log/app_engine/custom_logs.
These files are automatically collected and made available in the Logs Viewer.
Custom log files must have the suffix .log or .log.json. If the suffix is .log.json, the logs must be in JSON format with one JSON object per line.
If the suffix is .log, log entries are treated as plain text."
您必须将日志文件输出到文件夹/ var / log / app_engine /
仅当输出文件名为/var/log/app_engine/app.log时,它才适用于我。当我尝试使用.json扩展时,我没有工作,我认为这是一个错误,因为Cloud Logging服务仍处于测试阶段。
问候。
答案 1 :(得分:1)
我建议使用papertrail从Google云端进行日志记录。 您可以将它与winston-papertrail npm模块一起使用。
这是使其工作的配置。
在https://papertrailapp.com上创建帐户,您将获得托管服务 和港口创造温斯顿运输。
使用winston-papertrail模块为papertrail创建winston传输。
import winston from 'winston';
import expressWinston from 'express-winston';
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
// create winston transport for Papertrail
var winstonPapertrail = new winston.transports.Papertrail({
host: 'logsX.papertrailapp.com',
port: XXXXX
});
将传输附加到Express服务器以进行请求记录
app.use(expressWinston.logger({
transports: [winstonPapertrail],
meta: true, // optional: control whether you want to log the meta data about the request (default to true)
msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
colorize: true, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
ignoreRoute: function (req, res) { return false; } // optional: allows to skip some log messages based on request and/or response
}));
您还可以使用winstonPapertrail.log('info', 'Any info you want to send to papertrail logs');
进行自定义日志记录。