强烈建议 Cloud Functions、Cloud Run 和 App Engine 等无服务器应用程序使用 LogSync 类,因为异步日志可能会因 CPU 不足而被丢弃。
这是我使用
LogSync
类实现的谷歌云日志记录
import { Logging } from "@google-cloud/logging";
const creds = {
private_key:
'---',
client_email: "---",
};
const logging = new Logging({
projectId,
credentials: creds,
});
const log = logging.logSync(logName);
const metadata = {
resource: { type: "global" },
severity,
textPayload,
jsonPayload,
};
const CombinedEntry = log.entry(metadata);
log.alert(CombinedEntry);
我在 next.js 框架中使用它并部署在 Vercel 上(作为 无服务器函数)
这些日志在控制台 (stdout) 和 Vercel 函数仪表板中可见,但在 Google 云日志记录中不可见。
我是否需要配置
LogSync
以提及它还应该将日志发送到谷歌云日志记录?文档中没有提到。
我们还尝试了 logging.log
而不是 logging.LogSync
,但日志在云上仍然不可见,而仅在标准输出上可见。
这是我将 Vercel 日志获取到 Cloud Logging 的解决方案 https://github.com/kym6464/vercel-google-cloud-logging。它需要一些手动配置,但它可以完成工作。