Ghi nhật ký là một công cụ quan trọng để gỡ lỗi và giám sát mã. Cloud Functions cung cấp cho bạn tùy chọn sử dụng SDK trình ghi nhật ký, Google Cloud Logging tùy chỉnh hoặc tiêu chuẩn đối tượng console
để phát triển cho web.
Viết nhật ký
Mặc dù SDK ghi nhật ký Chức năng đám mây được đề xuất cho hầu hết các trường hợp, nhưng bạn có thể chọn một trong các tùy chọn khác vì những lý do sau:
- Bạn có một cơ sở mã hiện có và không muốn tái cấu trúc từ
console.log
. - Bạn đã quen với Ghi nhật ký trên đám mây (trước đây là ghi nhật ký StackDriver) và muốn sử dụng nó để ghi nhật ký tùy chỉnh.
Sử dụng SDK ghi nhật ký chức năng đám mây
SDK ghi nhật ký Chức năng đám mây cung cấp một giao diện tiêu chuẩn có api tương tự như các câu lệnh console.log
và hỗ trợ các cấp độ nhật ký khác. Bạn có thể sử dụng SDK này để ghi lại các sự kiện bằng dữ liệu có cấu trúc , giúp phân tích và giám sát dễ dàng hơn.
SDK trình ghi nhật ký hỗ trợ các mục nhập nhật ký như một phần của quá trình nhập ký tự đại diện. Ví dụ:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
Ngoài ra, bạn có thể sử dụng xuất cá nhân. Ví dụ này minh họa dữ liệu có cấu trúc được đính kèm vào nhật ký dưới dạng đối số cuối cùng:
const { warn } = require("firebase-functions/logger");
// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
key1: 'val1',
key2: 'val2'
});
- các lệnh
logger.log()
có cấp độ nhật ký INFO . - các lệnh
logger.info()
có cấp độ nhật ký INFO . - các lệnh
logger.warn()
có mức nhật ký CẢNH BÁO . - các lệnh
logger.error()
có cấp độ nhật ký ERROR . - Thông báo hệ thống nội bộ có cấp độ nhật ký GỠ LỖI .
Với logger.write()
, bạn có thể ghi các mục nhật ký bổ sung mức độ nghiêm trọng của nhật ký CRITICAL
, ALERT
và EMERGENCY
. Xem LogSeverity .
Nhật ký nhật ký đám mây tùy chỉnh
Nhật ký Chức năng đám mây với SDK trình ghi nhật ký được hỗ trợ bởi Cloud Logging . Bạn có thể sử dụng thư viện Cloud Logging cho Node.js để ghi lại các sự kiện bằng dữ liệu có cấu trúc, giúp phân tích và giám sát dễ dàng hơn.
const { Logging } = require('@google-cloud/logging');
// ...
// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');
// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
resource: {
type: 'cloud_function',
labels: {
function_name: 'CustomMetrics',
region: 'us-central1'
}
}
};
// ...
// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
event: 'my-event',
value: 'foo-bar-baz',
// Optional 'message' property will show up in the Firebase
// console and other human-readable logging surfaces
message: 'my-event: foo-bar-baz'
};
// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);
Sử dụng console.log
Giải pháp được khuyến nghị để ghi nhật ký từ một chức năng là sử dụng SDK trình ghi nhật ký . Thay vào đó, bạn có thể sử dụng lệnh gọi ghi nhật ký JavaScript tiêu chuẩn, chẳng hạn như console.log
và console.error
, nhưng trước tiên bạn cần yêu cầu một mô-đun đặc biệt để vá các phương thức tiêu chuẩn hoạt động chính xác:
require("firebase-functions/logger/compat");
Khi bạn đã yêu cầu mô-đun tương thích trình ghi nhật ký, bạn có thể sử dụng các phương thức console.log()
như bình thường trong mã của mình:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- các lệnh
console.log()
có cấp độ nhật ký INFO . - các lệnh
console.info()
có cấp độ nhật ký INFO . - các lệnh
console.warn()
có cấp độ nhật ký LỖI . - các lệnh
console.error()
có cấp độ nhật ký LỖI . - Thông báo hệ thống nội bộ có cấp độ nhật ký GỠ LỖI .
Xem nhật ký
Nhật ký cho Chức năng đám mây có thể xem được trong Google Cloud Console , Giao diện người dùng ghi nhật ký đám mây hoặc thông qua công cụ dòng lệnh firebase
.
Sử dụng Firebase CLI
Để xem nhật ký bằng công cụ firebase
, hãy sử dụng lệnh functions:log
:
firebase functions:log
Để xem nhật ký của một hàm cụ thể, hãy cung cấp tên hàm làm đối số:
firebase functions:log --only <FUNCTION_NAME>
Để biết đầy đủ các tùy chọn xem nhật ký, hãy xem phần trợ giúp về functions:log
:
firebase help functions:log
Sử dụng Google Cloud Console
Bạn có thể xem nhật ký cho các chức năng trong Google Cloud Console .
Sử dụng giao diện người dùng ghi nhật ký đám mây
Bạn có thể xem nhật ký cho Chức năng đám mây trong Giao diện người dùng ghi nhật ký đám mây.
Phân tích nhật ký
Cloud Logging cung cấp một bộ công cụ phân tích nhật ký mạnh mẽ mà bạn có thể sử dụng để giám sát các Chức năng đám mây của mình.
Biểu đồ và cảnh báo
Khi bạn đã tạo các chỉ số dựa trên nhật ký để giám sát các chức năng của mình, bạn có thể tạo biểu đồ và cảnh báo dựa trên các chỉ số này. Ví dụ: bạn có thể tạo biểu đồ để trực quan hóa độ trễ theo thời gian hoặc tạo cảnh báo để cho bạn biết nếu một lỗi nhất định xảy ra quá thường xuyên.
Xem Tạo biểu đồ và cảnh báo để biết thông tin chi tiết về cách sử dụng số liệu dựa trên nhật ký trong biểu đồ và chính sách cảnh báo.
, Ghi nhật ký là một công cụ quan trọng để gỡ lỗi và giám sát mã. Cloud Functions cung cấp cho bạn tùy chọn sử dụng SDK trình ghi nhật ký, Google Cloud Logging tùy chỉnh hoặc tiêu chuẩn đối tượng console
để phát triển cho web.
Viết nhật ký
Mặc dù SDK ghi nhật ký Chức năng đám mây được đề xuất cho hầu hết các trường hợp, nhưng bạn có thể chọn một trong các tùy chọn khác vì những lý do sau:
- Bạn có một cơ sở mã hiện có và không muốn tái cấu trúc từ
console.log
. - Bạn đã quen với Ghi nhật ký trên đám mây (trước đây là ghi nhật ký StackDriver) và muốn sử dụng nó để ghi nhật ký tùy chỉnh.
Sử dụng SDK ghi nhật ký chức năng đám mây
SDK ghi nhật ký Chức năng đám mây cung cấp một giao diện tiêu chuẩn có api tương tự như các câu lệnh console.log
và hỗ trợ các cấp độ nhật ký khác. Bạn có thể sử dụng SDK này để ghi lại các sự kiện bằng dữ liệu có cấu trúc , giúp phân tích và giám sát dễ dàng hơn.
SDK trình ghi nhật ký hỗ trợ các mục nhập nhật ký như một phần của quá trình nhập ký tự đại diện. Ví dụ:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
Ngoài ra, bạn có thể sử dụng xuất cá nhân. Ví dụ này minh họa dữ liệu có cấu trúc được đính kèm vào nhật ký dưới dạng đối số cuối cùng:
const { warn } = require("firebase-functions/logger");
// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
key1: 'val1',
key2: 'val2'
});
- các lệnh
logger.log()
có cấp độ nhật ký INFO . - các lệnh
logger.info()
có cấp độ nhật ký INFO . - các lệnh
logger.warn()
có mức nhật ký CẢNH BÁO . - các lệnh
logger.error()
có cấp độ nhật ký ERROR . - Thông báo hệ thống nội bộ có cấp độ nhật ký GỠ LỖI .
Với logger.write()
, bạn có thể ghi các mục nhật ký bổ sung mức độ nghiêm trọng của nhật ký CRITICAL
, ALERT
và EMERGENCY
. Xem LogSeverity .
Nhật ký nhật ký đám mây tùy chỉnh
Nhật ký Chức năng đám mây với SDK trình ghi nhật ký được hỗ trợ bởi Cloud Logging . Bạn có thể sử dụng thư viện Cloud Logging cho Node.js để ghi lại các sự kiện bằng dữ liệu có cấu trúc, giúp phân tích và giám sát dễ dàng hơn.
const { Logging } = require('@google-cloud/logging');
// ...
// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');
// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
resource: {
type: 'cloud_function',
labels: {
function_name: 'CustomMetrics',
region: 'us-central1'
}
}
};
// ...
// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
event: 'my-event',
value: 'foo-bar-baz',
// Optional 'message' property will show up in the Firebase
// console and other human-readable logging surfaces
message: 'my-event: foo-bar-baz'
};
// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);
Sử dụng console.log
Giải pháp được khuyến nghị để ghi nhật ký từ một chức năng là sử dụng SDK trình ghi nhật ký . Thay vào đó, bạn có thể sử dụng lệnh gọi ghi nhật ký JavaScript tiêu chuẩn, chẳng hạn như console.log
và console.error
, nhưng trước tiên bạn cần yêu cầu một mô-đun đặc biệt để vá các phương thức tiêu chuẩn hoạt động chính xác:
require("firebase-functions/logger/compat");
Khi bạn đã yêu cầu mô-đun tương thích trình ghi nhật ký, bạn có thể sử dụng các phương thức console.log()
như bình thường trong mã của mình:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- các lệnh
console.log()
có cấp độ nhật ký INFO . - các lệnh
console.info()
có cấp độ nhật ký INFO . - các lệnh
console.warn()
có cấp độ nhật ký LỖI . - các lệnh
console.error()
có cấp độ nhật ký LỖI . - Thông báo hệ thống nội bộ có cấp độ nhật ký GỠ LỖI .
Xem nhật ký
Nhật ký cho Chức năng đám mây có thể xem được trong Google Cloud Console , Giao diện người dùng ghi nhật ký đám mây hoặc thông qua công cụ dòng lệnh firebase
.
Sử dụng Firebase CLI
Để xem nhật ký bằng công cụ firebase
, hãy sử dụng lệnh functions:log
:
firebase functions:log
Để xem nhật ký của một hàm cụ thể, hãy cung cấp tên hàm làm đối số:
firebase functions:log --only <FUNCTION_NAME>
Để biết đầy đủ các tùy chọn xem nhật ký, hãy xem phần trợ giúp về functions:log
:
firebase help functions:log
Sử dụng Google Cloud Console
Bạn có thể xem nhật ký cho các chức năng trong Google Cloud Console .
Sử dụng giao diện người dùng ghi nhật ký đám mây
Bạn có thể xem nhật ký cho Chức năng đám mây trong Giao diện người dùng ghi nhật ký đám mây.
Phân tích nhật ký
Cloud Logging cung cấp một bộ công cụ phân tích nhật ký mạnh mẽ mà bạn có thể sử dụng để giám sát các Cloud Function của mình.
Biểu đồ và cảnh báo
Khi bạn đã tạo các chỉ số dựa trên nhật ký để giám sát các chức năng của mình, bạn có thể tạo biểu đồ và cảnh báo dựa trên các chỉ số này. Ví dụ: bạn có thể tạo biểu đồ để trực quan hóa độ trễ theo thời gian hoặc tạo cảnh báo để cho bạn biết nếu một lỗi nhất định xảy ra quá thường xuyên.
Xem Tạo biểu đồ và cảnh báo để biết thông tin chi tiết về cách sử dụng số liệu dựa trên nhật ký trong biểu đồ và chính sách cảnh báo.