Anda dapat menulis log ke Cloud Logging dari aplikasi Java dengan menggunakan Logback appender atau java.util.logging handler, atau menggunakan library Cloud Logging untuk Java secara langsung.
Agen Cloud Logging tidak harus diinstal untuk menggunakan library Cloud Logging untuk Java.
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Logging API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Logging API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Logback appender untuk Cloud Logging
Dengan Logback appender, Anda dapat menggunakan Cloud Logging dengan fasad logging SLF4J.
Menginstal dependensi
Jika Anda menggunakan Maven, tambahkan
kode berikut ke file pom.xml Anda. Untuk informasi lebih lanjut tentang
BOM, lihat BOM Library Google Cloud Platform.
Jika menggunakan Gradle, tambahkan kode berikut ke dependensi Anda:
Jika Anda menggunakan sbt, tambahkan kode berikut ke dependensi Anda:
Konfigurasi Logback
Logback dapat dikonfigurasi secara terprogram atau menggunakan skrip yang dinyatakan dalam XML atau Groovy.
Anda dapat menyesuaikan nilai minimum untuk tingkat keparahan, nama log, atau memberikan enhancer tambahan. Berikut adalah contoh konfigurasi Logback dalam format XML:
Contoh
Setelah mengonfigurasi Logback untuk menggunakan Logback appender Cloud Logging, Anda kini dapat mengalihkan log menggunakan API logging SLF4J. Berikan Google Cloud konfigurasi jika Anda berencana untuk menjalankan contoh secara lokal atau di luar Google Cloud. Cuplikan ini menunjukkan cara mencatat ke dalam log menggunakan fasad SLF4J dalam aplikasi Anda:
Pengendali java.util.logging
Anda juga dapat menggunakan Cloud Logging API menggunakan pengendali Java Logging API default.Menginstal dependensi
Jika Anda menggunakan Maven dengan
BOM, tambahkan kode berikut ke file pom.xml:
Jika Anda menggunakan Maven tanpa BOM, tambahkan ini ke dependensi Anda:
Jika menggunakan Gradle, tambahkan kode berikut ke dependensi Anda:
Jika Anda menggunakan sbt, tambahkan kode berikut ke dependensi Anda:
Jika menggunakan Visual Studio Code atau IntelliJ, Anda dapat menambahkan library klien ke project menggunakan plugin IDE berikut:
Plugin menyediakan fungsi tambahan, seperti pengelolaan kunci untuk akun layanan. Lihat dokumentasi setiap plugin untuk mengetahui detailnya.
Konfigurasi java.util.logging
Pengendali logging dapat ditambahkan secara terprogram atau menggunakan file konfigurasi. Jalur ke file konfigurasi harus diberikan ke aplikasi Anda sebagai properti sistem:
-Djava.util.logging.config.file=/path/to/logging.properties
Berikut adalah contoh file konfigurasi:
Contoh
Berikan Google Cloud konfigurasi jika Anda berencana untuk menjalankan contoh secara lokal atau di luar Google Cloud.
Cuplikan ini menunjukkan cara mencatat log menggunakan java.util.logging:
Konfigurasi Umum
Bagian berikut membahas konfigurasi yang umum untuk pengendali java.util.logging dan Logback appender untuk Cloud Logging.
Default
Logback appender dan pengendali java.util.logging menggunakan default berikut untuk membuat instance klien Cloud Logging:
Nama log :
java.logNilai minimum untuk tingkat keparahan log :
INFOTingkat keparahan flush :
ERROR
Library Cloud Logging untuk Java mengelompokkan pesan berdasarkan ukuran dan waktu sejak penulisan terakhir. Batch dengan permintaan logging pada atau di atas tingkat keparahan flush akan segera ditulis.
Deteksi resource yang dimonitor
Semua log yang dikirim melalui library Cloud Logging memerlukan jenis resource yang dipantau untuk mengidentifikasi aplikasi Anda.
Logback appender dan pengendali java.util.logging menyediakan deteksi jenis resource otomatis untuk aplikasi App Engine, Compute Engine, dan Google Kubernetes Engine Anda.
Resource yang dimonitor global digunakan sebagai default di lingkungan lain.
Anda dapat mengganti jenis resource yang dipantau ke a
jenis yang valid
di Konfigurasi Logback appender
atau java.util.logging Konfigurasi Pengendali.
Kolom dan label tambahan
Dengan Logback appender dan pengendali java.util.logging, Anda dapat menambahkan atau
memperbarui kolom pada objek LogEntry menggunakan
instance LoggingEnhancer.
Enhancer harus dikonfigurasi seperti yang ditunjukkan dalam
konfigurasi Logback appender atau
java.util.logging konfigurasi pengendali:
Penggunaan label kustom mungkin tidak didukung untuk konfigurasi Anda. Misalnya, log Dataflow tidak menyertakan label ini.
Untuk mengetahui informasi selengkapnya tentang penginstalan, lihat dokumentasi untuk library Cloud Logging untuk Java. Anda juga dapat melaporkan masalah menggunakan the issue tracker.
Menulis log dengan library klien Cloud Logging
Untuk mengetahui informasi tentang cara menggunakan library klien Cloud Logging untuk Java secara langsung, lihat Library Klien Cloud Logging.
Menjalankan di Google Cloud
Agar aplikasi dapat menulis log menggunakan library Cloud Logging untuk Java, akun layanan untuk resource yang mendasarinya harus memiliki peran IAM
Penulis Log (roles/logging.logWriter).
Sebagian besar Google Cloud lingkungan otomatis mengonfigurasi akun layanan default
untuk memiliki peran ini.
App Engine
Cloud Logging otomatis diaktifkan untuk App Engine, dan akun layanan default aplikasi Anda memiliki izin IAM secara default untuk menulis entri log.
Lingkungan standar App Engine, secara
default, menggunakan
java.util.logging.Logger
API; yang menulis ke Cloud Logging secara langsung dan mudah dikonfigurasi.
Untuk mengetahui detail selengkapnya, lihat dokumentasi App Engine tentang Membaca dan Menulis Log Aplikasi.
Lingkungan fleksibel App Engine
Di lingkungan fleksibel App Engine,
java.util.logging menggunakan ConsoleHandler
secara default, dan mengirim log ke stdout dan stderr.
Runtime Jetty dibundel dengan library Cloud Logging untuk Java.
java.util.logging Pengendali dapat digunakan untuk mencatat log langsung
ke Cloud Logging dengan menyediakan logging.properties di app.yaml
Anda seperti yang ditunjukkan di sini:
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
Logging ID pelacakan tersedia di runtime Jetty jika Anda menggunakan pengendali java.util.logging atau Logback appender.
Saat berjalan di lingkungan fleksibel App Engine, instance
TraceLoggingEnhancer menambahkan ID pelacakan yang aman untuk thread ke setiap entri log menggunakan label trace_id.
Google Kubernetes Engine (GKE)
GKE otomatis memberikan peran IAM Penulis Log (roles/logging.logWriter) ke akun layanan default.
Jika Anda menggunakan
Workload Identity Federation for GKE
dengan akun layanan default ini agar workload dapat mengakses
Google Cloud API tertentu, tidak diperlukan konfigurasi tambahan.
Namun, jika Anda menggunakan Workload Identity Federation untuk GKE dengan akun layanan IAM kustom, pastikan akun layanan kustom memiliki peran Penulis Log (roles/logging.logWriter).
Jika diperlukan, Anda juga dapat menggunakan perintah berikut untuk menambahkan cakupan akses logging.write saat membuat cluster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Saat menggunakan Compute Engine instance VM, tambahkan cloud-platform
cakupan akses ke setiap instance. Saat membuat instance baru melalui
Google Cloud konsol, Anda dapat melakukannya di bagian Identity and API access pada panel Create Instance. Gunakan akun layanan default Compute Engine atau akun layanan lain pilihan Anda, dan pilih Allow full access to all Cloud APIs di bagian Identity and API access. Akun
layanan mana pun yang Anda pilih, pastikan akun tersebut telah diberi peran
Penulis Log di bagian IAM & Admin di
Google Cloud konsol.
Menjalankan secara lokal dan di tempat lain
Untuk menggunakan library Cloud Logging untuk Java di luar Google Cloud, termasuk menjalankan library di workstation Anda sendiri, di komputer pusat data Anda, atau di instance VM penyedia cloud lain, Anda harus menyiapkan Kredensial Default Aplikasi (ADC) di lingkungan lokal Anda untuk melakukan autentikasi ke library Cloud Logging untuk Java.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan lokal atau penyedia cloud lainnya.
Melihat log
Di Google Cloud konsol, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Di Logs Explorer, Anda harus menentukan satu atau beberapa resource, tetapi pemilihan resource mungkin tidak jelas. Berikut beberapa tips yang dapat membantu Anda memulai:
Jika Anda men-deploy aplikasi ke App Engine atau menggunakan library khusus App Engine, tetapkan resource ke GAE Application.
Jika Anda men-deploy aplikasi di Compute Engine, tetapkan resource ke GCE VM Instance.
Jika Anda men-deploy aplikasi di Google Kubernetes Engine, konfigurasi logging cluster Anda akan menentukan jenis resource entri log. Untuk mengetahui pembahasan mendetail tentang Google Cloud Observability Lama dan solusi Google Cloud Observability Kubernetes Monitoring, serta pengaruh opsi tersebut terhadap jenis resource, lihat Bermigrasi ke Google Cloud Observability Kubernetes Monitoring.
Jika aplikasi Anda menggunakan Cloud Logging API secara langsung, resource akan bergantung pada API dan konfigurasi Anda. Misalnya, di aplikasi, Anda dapat menentukan resource atau menggunakan resource default.
Jika Anda tidak melihat log di Logs Explorer, untuk melihat semua entri log, beralihlah ke mode kueri lanjutan dan gunakan kueri kosong.
- Untuk beralih ke mode kueri lanjutan, klik menu (▾) di bagian atas Logs Explorer, lalu pilih Konversikan ke filter lanjutan.
- Hapus konten yang muncul di kotak filter.
- Klik Kirim Filter.
Anda dapat memeriksa setiap entri untuk mengidentifikasi resource.
Untuk mengetahui informasi tambahan, lihat Menggunakan Logs Explorer.