Search code examples
javascriptgoogle-cloud-platformgoogle-cloud-endpoints

Where does console.log info showup for Google Cloud functions


How can I see the console.log prints when I'm running a Google Cloud function? Is there a cloud console?

exports.helloWorld = function helloWorld(req, res) {
  // Example input: {"message": "Hello!"}
  if (req.body.message === undefined) {
    // This is an error case, as "message" is required.
    res.status(400).send('No message defined!');
  } else {
    // Everything is okay.
    console.log(req.body.message);
    res.status(200).send('Success: ' + req.body.message);
  }
};

Solution

  • Viewing Logs

    You can view the Cloud Function logs using either:

    // By default, the client will authenticate using the service account file
    // specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
    // the project specified by the GCLOUD_PROJECT environment variable. See
    // https://googlecloudplatform.github.io/gcloud-node/#/docs/google-cloud/latest/guides/authentication
    const Logging = require('@google-cloud/logging');
    
    function getLogEntries () {
      // Instantiates a client
      const logging = Logging();
    
      const options = {
        pageSize: 10,
        filter: 'resource.type="cloud_function"'
      };
    
      // Retrieve the latest Cloud Function log entries
      // See https://googlecloudplatform.github.io/gcloud-node/#/docs/logging
      return logging.getEntries(options)
        .then(([entries]) => {
          console.log('Entries:');
          entries.forEach((entry) => console.log(entry));
          return entries;
        });
    }
    

    To view logs with the gcloud tool, use the logs read command:

    gcloud functions logs read
    

    To view the logs for a specific function, provide the function name as an argument:

    gcloud functions logs read <FUNCTION_NAME>
    

    You can even view the logs for a specific execution:

    gcloud functions logs read <FUNCTION_NAME> --execution-id EXECUTION_ID
    

    For the full range of log viewing options, view the help for logs read:

    gcloud functions logs read -h
    

    Writing Logs

    You can use console.log() or console.error().

    • console.log() commands have the INFO log level.
    • console.error() commands have the ERROR log level.
    • Internal system messages have the DEBUG log level.

    More info about viewing Cloud Function logs is available here.