简体   繁体   English

自定义运行时node.js - 无法在Google App Engine中查看我的自定义日志

[英]Custom Runtime node.js - Can't see my custom logs in Google App Engine

We are using Google App Engine Custom Runtime to run our Node.js Serverside code for our mobile application. 我们正在使用Google App Engine自定义运行时为我们的移动应用程序运行Node.js Serverside代码。

HTTP Request logging is working fine, but we are having problems with our custom logs. HTTP请求日志记录工作正常,但我们的自定义日志出现问题。

We are using winston and log4js as logging frameworks to log our application specific loggings to a log file. 我们使用winston和log4js作为日志框架,将我们的应用程序特定日志记录到日志文件中。

Running the server locally everything works fine, but the log File cannot be found on the GAE. 在本地运行服务器一切正常,但在GAE上找不到日志文件。

We did not find a lot about Node.js Logging in the GAE, is there any special configuration needed for App Engine? 我们没有找到很多关于GAE中Node.js登录的信息,App Engine需要特殊配置吗?

Is it possible to access customs logs without, connecting to server? 是否可以在没有连接服务器的情况下访问海关日志?

You probably have solved this already, but just in case someone else needs it. 你可能已经解决了这个问题,但万一其他人需要它。

As described at Cloud Logging Doc in https://cloud.google.com/appengine/articles/logging 正如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."

You have to output the log file to the folder /var/log/app_engine/ 您必须将日志文件输出到文件夹/ var / log / app_engine /

It worked for me only when the output file was named /var/log/app_engine/app.log. 只有当输出文件名为/var/log/app_engine/app.log时,它才适用于我。 I didn't work when I tried with .json extension, I believe it's a bug since the Cloud Logging service is still in Beta. 当我尝试使用.json扩展时,我没有工作,我认为这是一个错误,因为Cloud Logging服务仍处于测试阶段。

Regards. 问候。

I would suggest to use papertrail for logging from google cloud. 我建议使用papertrail从谷歌云记录。 You can use it with winston-papertrail npm module. 您可以将它与winston-papertrail npm模块一起使用。

Here is configuration to make it work. 这是使其工作的配置。

  1. Create account on https://papertrailapp.com and you will get host and port to create winston transport. https://papertrailapp.com上创建帐户,您将获得主机和端口以创建winston传输。

  2. Create winston transport for papertrail using winston-papertrail module. 使用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 }); 
  3. Attach the transport to express server for request logging 将传输连接到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. Eg "{{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 })); 

you can also use winstonPapertrail.log('info', 'Any info you want to send to papertrail logs'); 你也可以使用winstonPapertrail.log('info', 'Any info you want to send to papertrail logs'); for custom logging. 用于自定义日志。

see https://github.com/kenperkins/winston-papertrail for more details. 有关详细信息,请参阅https://github.com/kenperkins/winston-papertrail

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM