Logging Java

Pada runtime Java, output apa pun ke STDOUT atau STDERR akan disebarkan ke Cloud Logging. Namun, tingkat keparahan log terperinci tidak diterapkan. Gunakan Java Logging API (JUL) standar untuk mencatat pesan dan menerapkan tingkat keparahan log yang benar ke Cloud Logging.

Jika Anda menggunakan framework logging yang berbeda, seperti SLF4J, Log4j 2, atau Apache Commons Logging, Anda dapat menerapkan log yang benar tingkat keparahannya dengan salah satu cara berikut:

  • Format pesan log dalam format JSON Logging Terstruktur sehingga tingkat keparahannya disebarkan ke Cloud Logging.
  • Gunakan bridge/adaptor untuk mengirim pesan log ke Java Logging API, yang telah menyebarkan pesan log dalam format yang benar. Jika Anda mengambil pendekatan ini, pastikan tidak ada adaptor yang ada yang sudah dirutekan dari Java Logging API ke framework logging.

Jika fungsi Anda menggunakan library yang berbeda dan library menggunakan framework logging yang berbeda, Anda harus mengonfigurasi setiap framework logging yang digunakan. Bagian berikut membahas beberapa dari berbagai opsi.

Fungsi Spring Cloud Run

Jika Anda menggunakan fungsi Spring Cloud Run dengan fungsi Spring Cloud Run Google Cloud Adapter, Anda dapat menghasilkan output log dalam format yang tepat menggunakan Google Cloud Logging Starter Spring Cloud dan Adder CONSOLE_JSON untuk menghasilkan log dalam format JSON. Spring menggunakan SLF4J dan Logback secara default, tetapi Anda juga dapat merutekan log SLF4J ke Java Logging API. Lihat bagian SLF4J untuk mengetahui detailnya.

Java Logging API (JUL)

Semua didukung Fungsi Cloud Run Java lingkungan sertakan Java Logging dengan pengendali JSON yang menghasilkan log dengan format font. Beberapa framework Java dapat menambahkan komponen tambahan untuk menjembatani JUL ke framework logging yang berbeda (seperti jul-to-slf4j bridge atau Log4j JDK Logging Adapter), yang mana jika pesan log tersebut tidak lagi diformat dengan benar. Jika pesan log Anda tidak memiliki tingkat keparahan yang benar, pastikan jembatan tersebut dihapus.

SLF4J

SLF4J dapat menulis log ke Java Logging API menggunakan binding framework logging slf4j-jdk14. Lihat dokumentasi SLF4J untuk mengetahui detailnya. Pastikan Anda tidak memiliki jul-to-slf4j jembatan.

Kembali

Logback tidak memiliki tambahan yang merutekan pesan log ke Java Logging API. Namun, Logback biasanya digunakan dengan SFL4J API, sehingga Anda dapat mengalihkan implementasi logger SLF4J ke Java Logging API.

Log4j 2

Log4j 2 tidak memiliki adaptor langsung yang merutekan pesan log ke Java Logging API. Jika Anda menggunakan Log4j 2, Anda harus merutekan pesan terlebih dahulu ke SLF4J menggunakanLog4J 2 untuk SLF4J Adaptor, lalu konfigurasikan SLF4J untuk menggunakan implementasi Java Logging API. Pastikan Anda tidak memiliki Adaptor Logging Log4j JDK.

Logging Apache Commons (JCL)

Apache Commons Logging memiliki adaptor Java Logging API. Konfigurasikan Commons Logging untuk menggunakan Jdk14Logger. Lihat halaman Konfigurasi Logging Apache Commons untuk informasi selengkapnya.