Melihat dan menulis log fungsi Cloud Run
Menulis log runtime
Fungsi Cloud Run menyertakan logging runtime sederhana secara default. Log yang ditulis ke stdout
atau stderr
akan muncul secara otomatis di Konsol Google Cloud.
Untuk logging tingkat lanjut, gunakan library klien Cloud Logging.
Secara default, payload log adalah string teks sederhana, seperti yang ditunjukkan dalam cuplikan
berikut. String ini disimpan di kolom textPayload
entri log.
Node.js
Sebagian besar entri log tidak memiliki level log terkait. Layanan tersebut meliputi:- Log yang dikeluarkan menggunakan
console.log()
,console.info()
,console.warn()
, atauconsole.error()
- Log yang ditulis langsung ke
stdout
ataustderr
Pesan sistem internal memiliki level log DEBUG
.
Python
- Log ke output standar atau error standar tidak memiliki level log terkait.
- Pesan sistem internal memiliki level log
DEBUG
.
Go
- Log ke
stdout
ataustderr
tidak memiliki level log terkait. - Pesan sistem internal memiliki level log
DEBUG
.
Java
- Log ke
stdout
ataustderr
tidak memiliki level log terkait. - Pesan sistem internal memiliki level log
DEBUG
.
C#
- Teks yang ditulis ke
stdout
(misalnya, melaluiConsole.WriteLine
) danstderr
(misalnya, melaluiConsole.Error.WriteLine
) tidak memiliki level log. - Level logging ASP.NET Core dipetakan ke level Cloud Logging sebagai berikut:
LogLevel.Trace
danLogLevel.Debug map
ke Cloud LoggingDEBUG
.LogLevel.Information
dipetakan ke Cloud LoggingINFO
.LogLevel.Warning
dipetakan ke Cloud LoggingWARNING
.LogLevel.Error
dipetakan ke Cloud LoggingERROR
.LogLevel.Critical
dipetakan ke Cloud LoggingCRITICAL
.
Ruby
Entri log tidak memiliki level log terkait.
PHP
Menulis log terstruktur
Log teks default yang dijelaskan di atas tidak memiliki level log terkait.
Jika ingin menyertakan level log atau kolom tertentu lainnya dalam entri log, Anda dapat menulis log ke stdout
atau stderr
dalam bentuk satu baris serialisasi JSON. Baris ini diambil dan diuraikan oleh fungsi Cloud Run dan ditempatkan di kolom jsonPayload
, bukan textPayload
. Cuplikan di bawah menunjukkan penulisan log terstruktur tersebut.
Node.js
Python
Dukungan logging terstruktur tersedia di Python 3.8 dan yang lebih baru.
Go
Struktur untuk setiap entri log disediakan oleh jenis Entry
:
Saat suatu struct Entri dicatat, metode String
akan digunakan untuk mengarahkannya ke format JSON yang diperkirakan oleh Cloud Logging:
Java
Aktifkan logging JSON dengan Logback dan SLF4J dengan mengaktifkan Logstash JSON Encoder dalam konfigurasi logback.xml
Anda.
Memproses kolom JSON khusus dalam pesan
Apabila Anda menyediakan log yang terstruktur sebagai kamus JSON, beberapa kolom khusus
akan dihapus dari jsonPayload
dan ditulis ke kolom yang sesuai dalam
LogEntry
, yang dibuat. Hal ini sebagaimana dijelaskan dalam
dokumentasi untuk kolom khusus.
Misalnya, jika JSON Anda menyertakan properti severity
, maka JSON tersebut akan dihapus dari
jsonPayload
dan muncul sebagai entri log milik severity
. Properti message
digunakan sebagai teks tampilan utama entri log jika ada.
Menulis log menggunakan library klien
Library klien Cloud Logging menyediakan cara alternatif untuk menulis log. Dengan library ini, Anda dapat menggunakan mekanisme logging standar dari bahasa pemrograman Anda dan berintegrasi dengan berbagai framework logging yang didukung. Library klien juga menyederhanakan pengisian kolom JSON khusus dengan mengambil sejumlah informasi secara otomatis dan menyediakan antarmuka untuk mengisi kolom dengan tepat.
Anda dapat menggunakan library klien untuk menulis log dengan Cloud Logging API secara sinkron atau asinkron. Beberapa library klien juga mendukung penulisan log terstruktur secara langsung ke stdout
atau stderr
. Perlu diperhatikan bahwa jika Anda menulis log secara asinkron, penghentian fungsi yang tidak terduga dapat mengakibatkan hilangnya entri log.
Perhatikan juga bahwa logging sinkron dengan Logging API meningkatkan
waktu eksekusi fungsi karena memerlukan waktu tunggu hingga panggilan API
diselesaikan.
Melihat log runtime
Menggunakan alat command line
Log untuk fungsi Cloud Run dapat dilihat di UI Cloud Logging, dan melalui Google Cloud CLI.
Untuk melihat log dengan gcloud CLI, gunakan perintah gcloud functions logs read
:
gcloud functions logs read --gen2
Untuk melihat log fungsi tertentu, masukkan nama fungsi sebagai argumen:
gcloud functions logs read FUNCTION_NAME --gen2
Untuk fungsi dalam bahasa lain, log dapat dikorelasikan
dari eksekusi fungsi yang sama menggunakan header permintaan x-cloud-trace-context
.
Untuk mengetahui berbagai opsi tampilan log, baca dokumentasi untuk
gcloud functions logs read
.
Menggunakan dasbor Logging
Anda juga dapat melihat log runtime untuk fungsi Cloud Run di Konsol Google Cloud.
Menggunakan Logging API
Log runtime juga dapat ditulis dan diambil melalui Cloud Logging API. Library klien Cloud Logging menyediakan antarmuka idiomatis ke Logging API:
Node.js
Untuk informasi lebih lanjut, baca referensi Library Klien Node.js.Python
Untuk informasi selengkapnya, lihat referensi Library Klien Python.Go
Untuk informasi selengkapnya, lihat referensi Library Klien Go.Java
Untuk informasi selengkapnya, lihat referensi Library Klien Java.C#
Ruby
PHP
Guna mengetahui opsi logging tambahan untuk Java, lihat Logging Java.
Merespons log runtime
Anda dapat merespons peristiwa Cloud Logging dengan meneruskan log-nya ke fungsi Cloud Run. Untuk mengetahui informasi selengkapnya, lihat halaman Pemicu Pihak Kedua dengan Cloud Logging.
Melihat log image build
Anda juga dapat melihat log untuk langkah image build dari proses deployment. Ikuti link untuk mengetahui informasi selengkapnya.