首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: logging.log不是一个函数JavaScript Google功能

TypeError: logging.log不是一个函数JavaScript Google功能
EN

Stack Overflow用户
提问于 2019-04-03 11:19:46
回答 1查看 1.8K关注 0票数 2

关于这个问题,我已经找过了,什么也找不到。

我已经部署了一些用JavaScript编写的Google函数,它利用以下函数来报告错误。这些函数成功运行,但我收到了以下错误:

TypeError: logging.log不是reportError上的函数(/user_code/index.js:158:23)

代码语言:javascript
复制
const logging = require('@google-cloud/logging');

reportError函数:

代码语言:javascript
复制
function reportError(err, context = {}) {

  const logName = 'errors';
  const log = logging.log(logName);

  // https://cloud.google.com/logging/docs/api/ref_v2beta1/rest/v2beta1/MonitoredResource
  const metadata = {
    resource: {
      type: 'cloud_function',
      labels: {function_name: process.env.FUNCTION_NAME},
    },
  };

  // https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorEvent
  const errorEvent = {
    message: err.stack,
    serviceContext: {
      service: process.env.FUNCTION_NAME,
      resourceType: 'cloud_function',
    },
    context: context,
  };

  // Write the error log entry
  return new Promise((resolve, reject) => {
    log.write(log.entry(metadata, errorEvent), (error) => {
      if (error) {
       return reject(error);
      }
      return resolve();
    });
  });
}
// [END reporterror]
EN

回答 1

Stack Overflow用户

发布于 2019-04-03 13:06:03

目前,通过将“logging”变量的初始化更改为,将YOUR_PROJECT_ID替换为创建这些云函数的项目id:

代码语言:javascript
复制
const logging = new (require('@googlecloud/logging')).Logging({projectId:'YOUR_PROJECT_ID'});

应该管用的。

您可以通过多种方式更改代码,但根据您在这里发布的新版本(只需相应地编辑projectId变量):

代码语言:javascript
复制
const google_cloud_logging = require('@google-cloud/logging');

function reportError(err, context = {}) {

  const logName = 'errors';

  const projectId = '';

  const logging = new google_cloud_logging.Logging({projectId: projectId});

  const log = logging.log(logName);

  // https://cloud.google.com/logging/docs/api/ref_v2beta1/rest/v2beta1/MonitoredResource
  const metadata = {
    resource: {
      type: 'cloud_function',
      labels: {function_name: process.env.FUNCTION_NAME},
    },
  };

  // https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorEvent
  const errorEvent = {
    message: err.stack,
    serviceContext: {
      service: process.env.FUNCTION_NAME,
      resourceType: 'cloud_function',
    },
    context: context,
  };

  // Write the error log entry
  return new Promise((resolve, reject) => {
    log.write(log.entry(metadata, errorEvent), (error) => {
      if (error) {
       return reject(error);
      }
      return resolve();
    });
  });
}
// [END reporterror]

此更改基于下面的例子

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55493926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档