id
Panduan
Server
Mengonfigurasi logging
idGuidesServerLogging

Configuring logging

Pencatatan adalah mekanisme penting untuk memahami dan mengoperasikan NQRust-Identity. Hal ini seharusnya membantu Anda untuk memantau kesehatan NQRust-Identity, mendebug masalah, dan memelihara jejak audit dari peristiwa penting.

Anda dapat mengonfigurasi pencatatan untuk tingkat log akar atau untuk kategori yang lebih spesifik seperti org.hibernate atau org.keycloak. Juga dimungkinkan untuk menyesuaikan tingkat log untuk setiap penangan log tertentu.

Di NQRust-Identity, pencatatan melampaui pengaturan tingkat log — Anda dapat mengarahkan output ke penangan yang berbeda, menggunakan pencatatan asinkron untuk performa, menangkap log akses HTTP, dan lainnya. Fitur-fitur ini membuatnya memungkinkan untuk menyesuaikan pencatatan dengan kebutuhan operasional Anda dan mengintegrasikan dengan platform observabilitas.

NQRust-Identity menggunakan kerangka kerja Pencarian NQRust di bawah hood.

Tersedianya penangan log

Konsol
Log ke output standar
File
Menjaga log di disk
Syslog
Mengirim log ke server Syslog

Untuk mengaktifkan penangan log, masukkan perintah berikut:

bin/kc.[sh|bat] start --log="<handler1>,<handler2>"

Tipe Log

Tabel berikut mendefinisikan tipe log yang tersedia.

TipeDeskripsi
FATALKegagalan krusial dengan kesulitan utuh dalam melayani permintaan apa pun.
ERRORKesalahan atau masalah yang signifikan yang mengakibatkan kesulitan dalam memproses permintaan.
WARNKesalahan atau masalah yang tidak krusial yang mungkin tidak memerlukan perbaikan segera.
INFOPeristiwa siklus hidup NQRust-Identity atau informasi penting. Frekuensi rendah.
DEBUGInformasi lebih detail untuk tujuan debugging, seperti log database. Frekuensi tinggi.
TRACEInformasi debugging yang paling detail. Frekuensi sangat tinggi.
ALLTipe khusus untuk semua pesan log.
OFFTipe khusus untuk menonaktifkan logging sama sekali (tidak disarankan).

Mengonfigurasi Tipe Log Root

Ketika tidak ada konfigurasi tipe log untuk logger kategori yang lebih spesifik, maka kategori yang membungkusnya digunakan. Ketika tidak ada kategori yang membungkusnya, tipe log logger root digunakan.

Untuk menetapkan tipe log root, masukkan perintah berikut:

bin/kc.[sh|bat] start --log-level=<root-level>

Gunakan panduan berikut untuk perintah ini:

  • Untuk <root-level>, berikan tingkat yang didefinisikan dalam tabel sebelumnya.
  • Tipe log tidak sensitif terhadap huruf besar kecil. Misalnya, Anda bisa menggunakan DEBUG atau debug.
  • Jika Anda secara tidak sengaja menetapkan tipe log dua kali, terjadinya terakhir dalam daftar menjadi tipe log. Misalnya, jika Anda memasukkan sintaks --log-level="info,…​,DEBUG,…​", logger root akan menjadi DEBUG.

Mengonfigurasi Tipe Log Khusus Kategori

Anda dapat menetapkan tipe log yang berbeda untuk area tertentu di NQRust-Identity. Gunakan perintah ini untuk memberikan daftar koma-terpisah dari kategori yang ingin Anda berikan tipe log yang berbeda:

bin/kc.[sh|bat] start --log-level="<root-level>,<org.category1>:<org.category1-level>"

Konfigurasi yang berlaku untuk kategori juga berlaku untuk sub-kategorinya kecuali jika Anda memasukkan sub-kategori yang lebih spesifik yang sesuai.

bin/kc.[sh|bat] start --log-level="INFO,org.hibernate:debug,org.hibernate.hql.internal.ast:info"

Contoh ini menetapkan tipe log berikut:

  • Tipe log root untuk semua logger diatur ke INFO.
  • Tipe log umum hibernate diatur ke debug.
  • Untuk mencegah struktur abstrak SQL dari menciptakan output log yangverbose, subkategori spesifik org.hibernate.hql.internal.ast diatur ke info. Akibatnya, struktur abstrak SQL dilewatkan bukan muncul pada tingkat debug.

Mengonfigurasi Tingkatan sebagai Opsi Individual

Saat mengonfigurasi tipe log khusus kategori, Anda juga dapat menetapkan tipe log sebagai opsi log-level-<category> individual daripada menggunakan opsi log-level untuk itu. Ini berguna ketika Anda ingin menetapkan tipe log untuk kategori yang dipilih tanpa menimpa opsi log-level yang telah diatur sebelumnya.

Jika Anda memulai server sebagai:

bin/kc.[sh|bat] start --log-level="INFO,org.hibernate:debug"

kemudian Anda dapat menetapkan variabel lingkungan KC_LOG_LEVEL_ORG_KEYCLOAK=trace untuk mengubah tingkat log untuk kategori org.keycloak.

Opsi log-level-<category> memiliki prioritas lebih tinggi dari log-level. Ini memungkinkan Anda untuk menimpa apa yang telah diatur dalam opsi log-level. Misalnya jika Anda menetapkan KC_LOG_LEVEL_ORG_HIBERNATE=trace untuk contoh CLI di atas, kategori org.hibernate akan menggunakan tingkat trace bukan debug.

Perhatikan bahwa saat menggunakan variabel lingkungan, nama kategori harus dalam huruf besar dan titik harus diganti dengan garis miring. Saat menggunakan sumber konfigurasi lainnya, nama kategori harus ditentukan "sebagai adanya", misalnya:

bin/kc.[sh|bat] start --log-level="INFO,org.hibernate:debug" --log-level-org.keycloak=trace

Menentukan Tipe Log untuk Setiap Penangan

Properti log-level menentukan tingkat root log global dan tingkatan untuk beberapa kategori yang dipilih. Namun, pendekatan yang lebih halus untuk tingkat log diperlukan untuk memenuhi persyaratan aplikasi modern.

Untuk menetapkan tingkat log untuk penangan tertentu, properti dalam format log-<handler>-level (dimana <handler> adalah penangan log yang tersedia) telah diperkenalkan.

Ini berarti properti untuk pengaturan tingkat log terlihat seperti ini:

  • log-console-level - Penangan log konsol
  • log-file-level - Penangan log file
  • log-syslog-level - Penangan log syslog

Properti log-<handler>-level hanya tersedia ketika penangan log tertentu diaktifkan. Informasi lebih lanjut dalam pengaturan penangan log di bawah ini.

Hanya tingkat log yang ditentukan dalam bagian Tipe Log yang diterima, dan harus dalam huruf kecil. Tidak ada dukungan untuk menentukan kategori tertentu untuk penangan log saat ini.

Prinsip Umum

Perlu dipahami bahwa menetapkan tingkat log untuk setiap penangan tertentu tidak menimpa tingkat root yang ditentukan dalam properti log-level. Penangan log menghormati tingkat root log, yang mewakili tingkat keverbosean maksimum untuk seluruh sistem logging. Ini berarti penangan log individu dapat dikonfigurasi untuk kurang verbose daripada logger root, tetapi tidak lebih.

Secara spesifik, ketika tingkat log sembarang ditetapkan untuk penangan, itu tidak berarti catatan log dengan tingkat log akan hadir dalam output. Dalam hal ini, tingkat root log-level juga harus dinilai. Tingkat log penangan menyediakan batas untuk tingkat root log, dan tingkat log default untuk penangan log adalah all - tanpa batasan apa pun.

Contoh

bin/kc.[sh|bat] start --log=console,file --log-level=debug --log-console-level=info

Tingkat root log diatur ke debug, jadi setiap penangan log mewarisi nilai - begitu juga dengan penangan log file. Untuk menyembunyikan catatan debug di konsol, kita perlu mengatur tingkat minimal (paling tidak parah) ke info untuk penangan konsol.

bin/kc.[sh|bat] start --log=console,file,syslog --log-level=debug --log-console-level=warn --log-syslog-level=warn

Tingkat root harus diatur ke tingkat yang paling verbose yang diperlukan (debug dalam hal ini), dan penangan log lainnya harus diubah sesuai.

bin/kc.[sh|bat] start --log=console,file,syslog --log-level=debug,org.keycloak.events:trace, --log-syslog-level=trace --log-console-level=info --log-file-level=info

Agar dapat melihat org.keycloak.events:trace, tingkat trace harus diatur untuk penangan Syslog.

Menambahkan konteks untuk pesan log

Anda dapat mengaktifkan informasi konteks tambahan untuk setiap baris log seperti realm saat ini dan client yang sedang menjalankan permintaan.

Gunakan opsi log-mdc-enabled untuk mengaktifkannya.

bin/kc.[sh|bat] start --log-mdc-enabled=true
2025-06-20 14:13:01,772 {kc.clientId=security-admin-console, kc.realmName=master} INFO ...

Tentukan kunci yang akan ditambahkan dengan mengatur opsi konfigurasi log-mdc-keys.

Menggunakan format JSON yang berbeda untuk penangan log

Setiap penangan log menyediakan kemampuan untuk memiliki output log terstruktur dalam format JSON. Hal ini dapat diaktifkan dengan properti dalam format log-<handler>-output=json (dimana <handler> adalah penangan log).

Jika Anda memerlukan format JSON yang berbeda dari yang dihasilkan, Anda dapat memanfaatkan format output JSON berikut:

  • default (default)
  • ecs

Nilai ecs mengacu pada ECS (opens in a new tab) (Elastic Common Schema).

ECS adalah spesifikasi sumber terbuka, didorong komunitas yang menentukan serangkaian bidang yang digunakan dengan solusi Elastic. Spesifikasi ECS sedang digabungkan dengan OpenTelemetry Semantic Conventions (opens in a new tab) dengan tujuan menciptakan satu standar yang dipelihara oleh OpenTelemetry.

Untuk mengubah format output JSON, properti dalam format log-<handler>-json-format (dimana <handler> adalah penangan log) telah diperkenalkan:

  • log-console-json-format - Penangan log konsol
  • log-file-json-format - Penangan log file
  • log-syslog-json-format - Penangan log syslog

Menyesuaikan bidang layanan

Saat menggunakan output log JSON, NQRust-Identity mencakup bidang service.name dan kemungkinan service.environment dalam entri log. Secara default, service.name disetel ke keycloak, dan service.environment tidak disetel untuk format JSON default. Untuk format ECS, service.environment disetel ke profil Quarkus (misalnya prod).

Anda dapat menyesuaikan bidang ini pada semua penangan log dengan menggunakan opsi berikut:

  • log-service-name - Atur bidang service.name (default: keycloak)
  • log-service-environment - Atur bidang service.environment

Opsi ini berlaku untuk semua penangan log (console, file, dan syslog) yang memiliki output JSON yang diaktifkan.

bin/kc.[sh|bat] start --log-console-output=json --log-service-name=my-keycloak --log-service-environment=production

Contoh

Jika Anda ingin memiliki log JSON dalam format ECS (Elastic Common Schema) untuk penangan log konsol, Anda dapat masukkan perintah berikut:

bin/kc.[sh|bat] start --log-console-output=json --log-console-json-format=ecs
{"@timestamp":"2025-02-03T14:53:22.539484211+01:00","event.sequence":9608,"log.logger":"io.quarkus","log.level":"INFO","message":"Keycloak 999.0.0-SNAPSHOT on JVM (powered by Quarkus 3.17.8) started in 4.615s. Listening on: http://0.0.0.0:8080","process.thread.name":"main","process.thread.id":1,"mdc":{},"ndc":"","host.hostname":"host-name","process.name":"/usr/lib/jvm/jdk-21.0.3+9/bin/java","process.pid":77561,"data_stream.type":"logs","ecs.version":"1.12.2","service.environment":"prod","service.name":"Keycloak","service.version":"999.0.0-SNAPSHOT"}

Pencacatan Asinkronis

NQRust-Identity mendukung pencacatan asinkronis, yang mungkin berguna untuk penyebaran yang memerlukan tingkat throughput tinggi dan latensi rendah. Pencacatan asinkronis menggunakan thread terpisah untuk menangani semua catatan log. Handler pencacatan dipanggil dengan cara yang persis sama seperti pencacatan sinkronis, hanya saja dilakukan di thread terpisah. Anda dapat mengaktifkan pencacatan asinkronis untuk semua handler log NQRust-Identity. Thread terpisah akan dibuat untuk setiap handler log dengan pencacatan asinkronis yang diaktifkan.

Mekanisme dasar untuk pencacatan asinkronis menggunakan antrian untuk memproses catatan log. Setiap catatan log baru ditambahkan ke antrian dan kemudian diterbitkan ke handler log tertentu dengan pencacatan asinkronis yang diaktifkan. Setiap handler log memiliki antrian yang berbeda.

Jika antrian sudah penuh, ia akan memblokir thread utama dan menunggu ruang bebas di antrian.

Kapan untuk menggunakan pencacatan asinkronis

  • Anda memerlukan latensi lebih rendah untuk permintaan masuk
  • Anda memerlukan throughput yang lebih tinggi
  • Anda memiliki kolam thread pekerja kecil dan ingin membebaskan pencacatan ke thread terpisah
  • Anda ingin mengurangi dampak dari handler log yang berat I/O
  • Anda mencatat ke tujuan jarak jauh (misalnya, server syslog jaringan) dan ingin menghindari pemblokiran thread pekerja
⚠️

Perhatikan bahwa mengaktifkan pencacatan asinkronis mungkin akan membawa overhead memori tambahan karena thread terpisah tambahan dan antrian internal. Dalam hal ini, tidak disarankan untuk menggunakannya di lingkungan yang terbatas sumber daya. Selain itu, shutdown server yang tidak terduga menciptakan risiko kehilangan catatan log.

Mengaktifkan pencacatan asinkronis

Anda dapat mengaktifkan pencacatan asinkronis secara global untuk semua handler log dengan menggunakan properti log-async sebagai berikut:

bin/kc.[sh|bat] start --log-async=true

Atau Anda dapat mengaktifkan pencacatan asinkronis untuk setiap handler tertentu dengan menggunakan properti dalam format log-<handler>-async (dimana <handler> adalah handler log). Jika properti untuk handler tertentu tidak diatur, nilai dari induk log-async yang digunakan.

Anda dapat menggunakan properti ini sebagai berikut:

bin/kc.[sh|bat] start --log-console-async=true --log-file-async=true --log-syslog-async=true
  • log-console-async - Handler log konsol
  • log-file-async - Handler log file
  • log-syslog-async - Handler log syslog

Mengubah panjang antrian

Anda dapat mengubah ukuran antrian yang digunakan untuk pencacatan asinkronis. Ukuran default adalah 512 catatan log di antrian.

Anda dapat mengubah panjang antrian sebagai berikut:

bin/kc.[sh|bat] start --log-console-async-queue-length=512 --log-file-async-queue-length=512 --log-syslog-async-queue-length=512

Properti-properti ini hanya tersedia ketika pencacatan asinkronis diaktifkan untuk handler log tertentu.

Logging Akses HTTP

NQRust-Identity mendukung logging akses HTTP untuk mencatat detail dari permintaan HTTP yang masuk. Sementara log akses sering digunakan untuk debugging dan analisis lalu lintas, mereka juga penting untuk audit keamanan dan monitoring kompliansi, membantu administrator melacak pola akses, mengidentifikasi aktivitas mencurigakan, dan menjaga jejak audit.

Log ini ditulis pada level INFO, jadi pastikan konfigurasi logging Anda mencakup level ini — baik secara global (mis. log-level=info) atau secara spesifik untuk kategori log akses (mis. log-level=org.keycloak.http.access-log:info). Ketika logging akses HTTP diaktifkan, mereka secara default ditampilkan, karena level INFO adalah level log default untuk NQRust-Identity.

Cara Mengaktifkan

Anda dapat mengaktifkan logging akses HTTP dengan menggunakan properti http-access-log-enabled sebagai berikut:

bin/kc.[sh|bat] start --http-access-log-enabled=true

Mengubah format/pattern log

Anda dapat mengubah format/pattern catatan log akses dengan menggunakan properti http-access-log-pattern sebagai berikut:

bin/kc.[sh|bat] start --http-access-log-pattern=combined

Pola yang diberi nama terdahulu:

  • common (default) - mencetak informasi dasar tentang permintaan
  • combined - mencetak informasi dasar tentang permintaan + informasi tentang referer dan agen pengguna
  • long - mencetak informasi komprehensif tentang permintaan dengan semua headernya

Bahkan Anda dapat menentukan pola Anda sendiri dengan data yang dibutuhkan untuk dilog, seperti:

bin/kc.[sh|bat] start --http-access-log-pattern='%A %{METHOD} %{REQUEST_URL} %{i,User-Agent}'
⚠️

Log akses HTTP mungkin berisi header HTTP sensitif seperti Authorization, Cookie, atau referensi kunci API eksternal. Header Authorization dan beberapa cookie sensitif yang dipilih secara otomatis dimasking dalam log akses HTTP. Namun, daftar item yang dimasking mungkin tidak lengkap. Hati-hati dengan menggunakan pola panjang atau mencetak header dengan format kustom - Anda harus menggunakannya hanya untuk tujuan pengembangan. Untuk memperluas daftar item yang dimasking, lihat di bawah.

Mohon kunjungi dokumentasi Quarkus (opens in a new tab) untuk daftar lengkap variabel yang dapat digunakan.

Masking header HTTP dan cookie tertentu

Header HTTP sensitif yang dipilih dan cookie dimasking secara otomatis dalam log akses HTTP.

Header HTTP sensitif yang dimask:

  • Authorization

Cookie NQRust-Identity sensitif yang dimask:

  • AUTH_SESSION_ID
  • KC_AUTH_SESSION_HASH
  • KEYCLOAK_IDENTITY
  • KEYCLOAK_SESSION
  • AUTH_SESSION_ID_LEGACY
  • KEYCLOAK_IDENTITY_LEGACY
  • KEYCLOAK_SESSION_LEGACY

Untuk memperluas daftar item yang dimask (mis. untuk mengakomodasi header dan cookie yang digunakan oleh ekstensi kustom Anda), konfigurasikan opsi http-access-log-masked-headers dan http-access-log-masked-cookies.

bin/kc.[sh|bat] start --http-access-log-enabled=true --http-access-log-masked-headers=X-Custom,Y-Api-Token --http-access-log-masked-cookies=MY_COOKIE,MY_SECOND_COOKIE

Mengecualikan path URL tertentu

Dimungkinkan untuk mengecualikan path URL tertentu dari logging akses HTTP, sehingga mereka tidak akan tercatat.

Anda dapat menggunakan ekspresi regular untuk mengecualikannya, seperti:

bin/kc.[sh|bat] start --http-access-log-exclude='/realms/my-internal-realm/.*'

Dalam hal ini, semua panggilan ke /realms/my-internal-realm/ dan path berikutnya akan dikecualikan dari log akses HTTP.

Log ke file terpisah dengan rotasi

Alih-alih menyimpan log akses HTTP dalam log server normal, Anda dapat menuliskannya ke file log terpisah. Ini membantu Anda memisahkan log akses HTTP dari log server dan menjaga jejak audit. Ketika logging ke file diaktifkan, log akses HTTP tidak ditulis ke konsol.

Mengaktifkan logging ke file

Anda dapat mengaktifkan logging ke file sebagai berikut:

bin/kc.[sh|bat] start --http-access-log-enabled=true --http-access-log-file-enabled=true

Ini secara otomatis membuat file bernama keycloak-http-access.log dalam direktori /data/log distribusi Anda.

Mengubah nama file dan sufiks

Anda dapat mengubah nama file log menggunakan properti http-access-log-file-name. Untuk mengubah sufiks file (.log adalah default), gunakan properti http-access-log-file-suffix.

Sebagai contoh, untuk menulis log akses HTTP ke file my-http-logs.txt:

bin/kc.[sh|bat] start --http-access-log-enabled=true --http-access-log-file-enabled=true --http-access-log-file-name=my-http-logs --http-access-log-file-suffix=txt

Rotasi file

Secara default, file log akses HTTP diputar setiap hari.

Ketika rotasi harian terjadi, sufiks berdasarkan tanggal '.{yyyy-MM-dd}' ditambahkan ke nama file log dari hari sebelumnya, menjaga log akses terpisah berdasarkan tanggal (misalnya, keycloak-http-access.2052-02-29.log).

Untuk menonaktifkan rotasi, gunakan konfigurasi berikut:

bin/kc.[sh|bat] start --http-access-log-enabled=true --http-access-log-file-enabled=true --http-access-log-file-rotate=false

Ekspor Log Telemetri (OpenTelemetry)

Dimungkinkan untuk mengekspor log OpenTelemetry dari deployment Anda ke pengumpul OpenTelemetry untuk manajemen log terpusat.

Untuk detail lebih lanjut, lihat panduan Centralize your observability stack with OpenTelemetry.

Opsi yang Relevan

OpsiTipe atau NilaiDefault
log
Aktifkan satu atau lebih handler log dalam daftar yang dipisahkan komma.
CLI: --log
Env: KC_LOG
console, file, syslogconsole
log-async
Menunjukkan apakah untuk logging secara asinkron ke semua handler.
CLI: --log-async
Env: KC_LOG_ASYNC
true, falsefalse
log-level
Tingkat log dari kategori root atau daftar yang dipisahkan komma dari kategori individual dan tingkat mereka.
Untuk kategori root, Anda tidak perlu menentukan kategori.
CLI: --log-level
Env: KC_LOG_LEVEL
Daftarinfo
log-level-<category>
Tingkat log dari kategori.
Menggantikan opsi log-level.
CLI: --log-level-<category>
Env: KC_LOG_LEVEL_<CATEGORY>
off, fatal, error, warn, info, debug, trace, all
log-service-environment
Set the service.<br/>environment field in JSON log entries for all log handlers. In ECS format, defaults to the Quarkus profile if not set.
CLI: --log-service-environment
Env: KC_LOG_SERVICE_ENVIRONMENT
String
log-service-name
Set the service.<br/>name field in JSON log entries for all log handlers.
CLI: --log-service-name
Env: KC_LOG_SERVICE_NAME
Stringkeycloak

Konsol

OpsiTipe atau NilaiDefault
log-console-async
Menunjukkan apakah untuk logging secara asinkron ke konsol.
Jika tidak diatur, nilai dari properti induk log-async digunakan.
CLI: --log-console-async
Env: KC_LOG_CONSOLE_ASYNC
true, falsefalse
log-console-async-queue-length
Panjang antrian untuk digunakan sebelum flush writing saat logging ke konsol.
CLI: --log-console-async-queue-length
Env: KC_LOG_CONSOLE_ASYNC_QUEUE_LENGTH
Integer512
log-console-color
Aktifkan atau nonaktifkan warna saat logging ke konsol.
Jika tidak ada, akan dibuat percobaan untuk menebak apakah terminal mendukung warna.
CLI: --log-console-color
Env: KC_LOG_CONSOLE_COLOR
true, false
log-console-format
Format dari entri log konsol yang tidak terstruktur.
Jika format memiliki spasi, escape nilai menggunakan "<format>".
CLI: --log-console-format
Env: KC_LOG_CONSOLE_FORMAT
String%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n
log-console-include-mdc
Sertakan informasi mdc dalam log konsol.
Jika opsi log-console-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-console-include-mdc
Env: KC_LOG_CONSOLE_INCLUDE_MDC
true, falsetrue
log-console-include-trace
Sertakan informasi tracing dalam log konsol.
Jika opsi log-console-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-console-include-trace
Env: KC_LOG_CONSOLE_INCLUDE_TRACE
true, falsetrue
log-console-json-format
Set the format of the produced JSON.
CLI: --log-console-json-format
Env: KC_LOG_CONSOLE_JSON_FORMAT
default, ecsdefault
log-console-level
Set the log level for the console handler.
It specifies the most verbose log level for logs shown in the output. It respects levels specified in the log-level option, which represents the maximal verbosity for the whole logging system. For more information, check the Logging guide.
CLI: --log-console-level
Env: KC_LOG_CONSOLE_LEVEL
off, fatal, error, warn, info, debug, trace, allall
log-console-output
Set the log output to JSON or default (plain) unstructured logging.
CLI: --log-console-output
Env: KC_LOG_CONSOLE_OUTPUT
default, jsondefault

Berkas

OpsiTipe atau NilaiDefault
log-file
Set the log file path and filename.
CLI: --log-file
Env: KC_LOG_FILE
Filedata/log/keycloak.log
log-file-async
Menunjukkan apakah untuk logging secara asinkron ke file log.
Jika tidak diatur, nilai dari properti induk log-async digunakan.
CLI: --log-file-async
Env: KC_LOG_FILE_ASYNC
true, falsefalse
log-file-async-queue-length
Panjang antrian untuk digunakan sebelum flush writing saat logging ke file log.
CLI: --log-file-async-queue-length
Env: KC_LOG_FILE_ASYNC_QUEUE_LENGTH
Integer512
log-file-format
Set a format specific to file log entries.
CLI: --log-file-format
Env: KC_LOG_FILE_FORMAT
String%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n
log-file-include-mdc
Sertakan informasi MDC dalam file log.
Jika opsi log-file-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-file-include-mdc
Env: KC_LOG_FILE_INCLUDE_MDC
true, falsetrue
log-file-include-trace
Sertakan informasi tracing dalam file log.
Jika opsi log-file-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-file-include-trace
Env: KC_LOG_FILE_INCLUDE_TRACE
true, falsetrue
log-file-json-format
Set the format of the produced JSON.
CLI: --log-file-json-format
Env: KC_LOG_FILE_JSON_FORMAT
default, ecsdefault
log-file-level
Set the log level for the file handler.
It specifies the most verbose log level for logs shown in the output. It respects levels specified in the log-level option, which represents the maximal verbosity for the whole logging system. For more information, check the Logging guide.
CLI: --log-file-level
Env: KC_LOG_FILE_LEVEL
off, fatal, error, warn, info, debug, trace, allall
log-file-output
Set the log output to JSON or default (plain) unstructured logging.
CLI: --log-file-output
Env: KC_LOG_FILE_OUTPUT
default, jsondefault
log-file-rotation-enabled
Aktifkan rotasi file log.
CLI: --log-file-rotation-enabled
Env: KC_LOG_FILE_ROTATION_ENABLED
true, falsetrue
log-file-rotation-file-suffix
Set the log file handler rotation file suffix.
When used, the file will be rotated based on its suffix. Example: .yyyy-MM-dd to rotate daily. Note: If the suffix ends with .zip or .gz, the rotation file will also be compressed.
CLI: --log-file-rotation-file-suffix
Env: KC_LOG_FILE_ROTATION_FILE_SUFFIX
String
log-file-rotation-max-backup-index
Jumlah maksimum file log cadangan yang harus dijaga.
CLI: --log-file-rotation-max-backup-index
Env: KC_LOG_FILE_ROTATION_MAX_BACKUP_INDEX
Integer5
log-file-rotation-max-file-size
Ukuran file log maksimum, setelah itu rotasi dijalankan.
Mendukung akhiran ukuran (misalnya 10M, 1G).
CLI: --log-file-rotation-max-file-size
Env: KC_LOG_FILE_ROTATION_MAX_FILE_SIZE
String10M
log-file-rotation-rotate-on-boot
Menunjukkan apakah untuk rotasi file log saat server start.
CLI: --log-file-rotation-rotate-on-boot
Env: KC_LOG_FILE_ROTATION_ROTATE_ON_BOOT
true, falsetrue

Syslog

OpsiTipe atau NilaiDefault
log-syslog-app-name
Set the app name used when formatting the message in RFC5424 format.
CLI: --log-syslog-app-name
Env: KC_LOG_SYSLOG_APP_NAME
Stringkeycloak
log-syslog-async
Menunjukkan apakah untuk logging secara asinkron ke Syslog.
Jika tidak diatur, nilai dari properti induk log-async digunakan.
CLI: --log-syslog-async
Env: KC_LOG_SYSLOG_ASYNC
true, falsefalse
log-syslog-async-queue-length
Panjang antrian untuk digunakan sebelum flush writing saat logging ke Syslog.
CLI: --log-syslog-async-queue-length
Env: KC_LOG_SYSLOG_ASYNC_QUEUE_LENGTH
Integer512
log-syslog-counting-framing
Jika true, pesan yang dikirim diberi awalan dengan ukuran pesan.
Jika protocol-dependent, nilai default adalah true saat log-syslog-protocol adalah tcp atau ssl-tcp, jika tidak false.
CLI: --log-syslog-counting-framing
Env: KC_LOG_SYSLOG_COUNTING_FRAMING
true, false, protocol-dependentprotocol-dependent
log-syslog-endpoint
Set the IP address and port of the Syslog server.
CLI: --log-syslog-endpoint
Env: KC_LOG_SYSLOG_ENDPOINT
Stringlocalhost:514
log-syslog-format
Set a format specific to Syslog entries.
CLI: --log-syslog-format
Env: KC_LOG_SYSLOG_FORMAT
String%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n
log-syslog-include-mdc
Sertakan informasi MDC dalam Syslog.
Jika opsi log-syslog-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-syslog-include-mdc
Env: KC_LOG_SYSLOG_INCLUDE_MDC
true, falsetrue
log-syslog-include-trace
Sertakan informasi tracing dalam Syslog.
Jika opsi log-syslog-format ditentukan, opsi ini tidak berpengaruh.
CLI: --log-syslog-include-trace
Env: KC_LOG_SYSLOG_INCLUDE_TRACE
true, falsetrue
log-syslog-json-format
Set the format of the produced JSON.
CLI: --log-syslog-json-format
Env: KC_LOG_SYSLOG_JSON_FORMAT
default, ecsdefault
log-syslog-level
Set the log level for the Syslog handler.
It specifies the most verbose log level for logs shown in the output. It respects levels specified in the log-level option, which represents the maximal verbosity for the whole logging system. For more information, check the Logging guide.
CLI: --log-syslog-level
Env: KC_LOG_SYSLOG_LEVEL
off, fatal, error, warn, info, debug, trace, allall
log-syslog-max-length
Set the maximum length, in bytes, of the message allowed to be sent.
The length includes the header and the message. If not set, the default value is 2048 when log-syslog-type is rfc5424 (default) and 1024 when log-syslog-type is rfc3164.
CLI: --log-syslog-max-length
Env: KC_LOG_SYSLOG_MAX_LENGTH
String
log-syslog-output
Set the Syslog output to JSON or default (plain) unstructured logging.
CLI: --log-syslog-output
Env: KC_LOG_SYSLOG_OUTPUT
default, jsondefault
log-syslog-protocol
Set the protocol used to connect to the Syslog server.
CLI: --log-syslog-protocol
Env: KC_LOG_SYSLOG_PROTOCOL
tcp, udp, ssl-tcptcp
log-syslog-type
Set the Syslog type used to format the sent message.
CLI: --log-syslog-type
Env: KC_LOG_SYSLOG_TYPE
rfc5424, rfc3164rfc5424

HTTP Access log

OpsiTipe atau NilaiDefault
http-access-log-enabled
Jika HTTP access logging diaktifkan.
Secara default, ini akan log record di konsol.
CLI: --http-access-log-enabled
Env: KC_HTTP_ACCESS_LOG_ENABLED
true, falsefalse
http-access-log-exclude
Ekspresi reguler yang dapat digunakan untuk mengecualikan beberapa path dari logging.
Sebagai contoh, /realms/my-realm/.* akan mengecualikan semua endpoint berikutnya untuk realm my-realm dari log.
CLI: --http-access-log-exclude
Env: KC_HTTP_ACCESS_LOG_EXCLUDE
String
http-access-log-file-enabled
Jika HTTP access logging harus dilakukan ke file terpisah.
CLI: --http-access-log-file-enabled
Env: KC_HTTP_ACCESS_LOG_FILE_ENABLED
true, falsefalse
http-access-log-file-name
Nama dasar file log akses HTTP, yang akan membuat nama file log dengan menghitung dasar dan akhiran (e.
g. keycloak-http-access.log). File berada di direktori /data/log distribusi.
CLI: --http-access-log-file-name
Env: KC_HTTP_ACCESS_LOG_FILE_NAME
Stringkeycloak-http-access
http-access-log-file-rotate
Jika file log akses HTTP harus dirotate secara harian.
CLI: --http-access-log-file-rotate
Env: KC_HTTP_ACCESS_LOG_FILE_ROTATE
true, falsetrue
http-access-log-file-suffix
Akhiranan file log akses HTTP.
Ketika rotasi diaktifkan, akhiran berbasis tanggal .{yyyy-MM-dd} ditambahkan sebelum akhiran yang ditentukan. Jika beberapa rotasi terjadi pada hari yang sama, indeks bertambah akan dilampirkan ke tanggal.
CLI: --http-access-log-file-suffix
Env: KC_HTTP_ACCESS_LOG_FILE_SUFFIX
String.log
http-access-log-masked-cookies
Set dari header HTTP Cookie yang nilainya harus dimask when the long pattern or %{ALL_REQUEST_HEADERS} format is enabled with the http-access-log-pattern option.
Selected security sensitive cookies are always masked.
CLI: --http-access-log-masked-cookies
Env: KC_HTTP_ACCESS_LOG_MASKED_COOKIES
Daftar
http-access-log-masked-headers
Set dari header HTTP yang nilainya harus dimask when the long pattern or %{ALL_REQUEST_HEADERS} format is enabled with the http-access-log-pattern option.
Selected security sensitive headers are always masked.
CLI: --http-access-log-masked-headers
Env: KC_HTTP_ACCESS_LOG_MASKED_HEADERS
Daftar
http-access-log-pattern
Pola log akses HTTP.
Anda dapat menggunakan format yang tersedia, atau gunakan format kustom yang dijelaskan dalam dokumentasi Quarkus.
CLI: --http-access-log-pattern
Env: KC_HTTP_ACCESS_LOG_PATTERN
common, combined, long, atau apapuncommon

Mapped Diagnostic Context (MDC)

OpsiTipe atau NilaiDefault
log-mdc-enabled
Menunjukkan apakah untuk menambahkan informasi tentang realm dan informasi lainnya ke mapped diagnostic context.
Semua elemen akan diawali dengan kc.
CLI: --log-mdc-enabled
Env: KC_LOG_MDC_ENABLED
true, falsefalse
log-mdc-keys
Menentukan informasi mana yang harus ditambahkan ke mapped diagnostic context sebagai daftar yang dipisahkan komma.
CLI: --log-mdc-keys
Env: KC_LOG_MDC_KEYS
realmName, clientId, userId, ipAddress, org, sessionId, authenticationSessionId, authenticationTabIdrealmName,clientId,org,sessionId,authenticationSessionId,authenticationTabId

Telemetry Logs (OpenTelemetry)

OpsiTipe atau NilaiDefault
telemetry-logs-enabled
Mengaktifkan ekspor log ke tujuan yang menangani log OpenTelemetry.
CLI: --telemetry-logs-enabled
Env: KC_TELEMETRY_LOGS_ENABLED
true, falsefalse
telemetry-logs-endpoint
OpenTelemetry endpoint untuk mengekspor log ke.
Jika tidak diberikan, nilai diwarisi dari opsi telemetry-endpoint.
CLI: --telemetry-logs-endpoint
Env: KC_TELEMETRY_LOGS_ENDPOINT
String
telemetry-logs-header-<header>
OpenTelemetry header yang akan menjadi bagian dari permintaan ekspor log (utama untuk memberikan header Autorisasi).
Periksa dokumentasi untuk mengetahui cara mengatur variabel lingkungan untuk header yang berisi karakter khusus atau header sensitif besar kecil.
CLI: --telemetry-logs-header-<header>
Env: KC_TELEMETRY_LOGS_HEADER_<HEADER>
String
telemetry-logs-level
Tingkat log yang paling verbose yang diekspor ke endpoint telemetry.
Untuk informasi lebih lanjut, periksa panduan Telemetry.
CLI: --telemetry-logs-level
Env: KC_TELEMETRY_LOGS_LEVEL
off, fatal, error, warn, info, debug, trace, allall
telemetry-logs-protocol
Protokol OpenTelemetry yang digunakan untuk mengekspor log.
Jika tidak diberikan, nilai diwarisi dari opsi telemetry-protocol.
CLI: --telemetry-logs-protocol
Env: KC_TELEMETRY_LOGS_PROTOCOL
grpc, http/protobuf