


Adakah mungkin untuk mengemas kini tahap log logger zap pada masa jalan?
Ini adalah keperluan biasa bagi editor PHP Xigua untuk mengemas kini tahap log perakam zap semasa masa jalan. zap ialah alat pengelogan yang berkuasa yang boleh membantu kami menangkap dan merekod maklumat yang sedang berjalan aplikasi. Biasanya, kita perlu menetapkan tahap log zap apabila aplikasi dimulakan, tetapi kadangkala kita mahu dapat mengemas kini tahap log secara dinamik semasa masa jalan untuk melaraskannya mengikut keperluan sebenar. Dalam zap, kita boleh mencapai fungsi ini dengan menggunakan kaedah yang disediakan oleh antara muka Logger zap. Khususnya, kita boleh menggunakan `zap.Info()`, `zap.Debug()`, `zap.Warn()` dan kaedah lain untuk mengemas kini tahap log secara dinamik. Dengan cara ini, kami boleh melaraskan gelagat pengelogan zap secara fleksibel pada masa jalan mengikut keperluan.
Kandungan soalan
Saya mencipta pembalak menggunakan kubebuilder
yang berdasarkan pada logger zap:
import ( "flag" "github.com/gin-gonic/gin" "net/http" "os" "go.uber.org/zap/zapcore" uzap "go.uber.org/zap" // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) // to ensure that exec-entrypoint and run can make use of them. _ "k8s.io/client-go/plugin/pkg/client/auth" "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/healthz" "sigs.k8s.io/controller-runtime/pkg/log/zap" ) var ( scheme = runtime.NewScheme() setupLog = ctrl.Log.WithName("setup") ) var zapOpts []uzap.Option zapOpts = append(zapOpts, uzap.AddCaller()) zapOpts = append(zapOpts, uzap.AddCallerSkip(1)) zapOpts = append(zapOpts, uzap.AddStacktrace(uzap.DebugLevel)) opts := zap.Options{ Development: developmentFlag, StacktraceLevel: stacktraceLevel, Level: level, Encoder: encoder, ZapOpts: zapOpts, } opts.BindFlags(flag.CommandLine) flag.Parse() ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
Sekarang saya mahu menukar tahap log semasa runtime kepada zapcore.infolevel
。我没有找到任何 setloglevel
atau api yang serupa.
Adakah saya perlu membuat pilihan baharu dan kemudian menetapkan tahap baharu?
Saya juga perlu menyediakan pembalak menggunakan sigs.k8s.io/controller-runtime/pkg/log/zap
库设置记录器。记录器的接口来自go-logr
,它实现了logr.logger
接口。如果我尝试将其更改为 zapcore.newcore
,我将无法再使用 ctrl.setlogger
.
Saya mahu menyimpan zap daripada kemas kini zap.options
的所有选项的选项,并更改日志级别,并且仍然使用 sigs.k8s.io/controller-runtime/pkg/log/zap
.
Adakah mungkin untuk melakukan ini?
sigs.k8s.io/controller-runtime/pkg/log/zap
dan sigs.k8s.io/controller-runtime
? . /kod>. Lihat jawapan mereka untuk butiran. sigs.k8s.io/controller-runtime
?
解决方法
更好的答案:按照@oliver dain的建议,使用 zap.atomiclevel
levelenabler
函数创建核心。您可以使用 zap.levelenablerfunc
将闭包转换为 zapcore.levelenabler
.
levelenabler menentukan sama ada tahap pengelogan tertentu didayakan semasa mengelog mesej.
levelenablerfunc ialah cara mudah untuk melaksanakan zapcore.levelenabler menggunakan fungsi tanpa nama.
Fungsi mungkin kembali
: true
或 false
berdasarkan pembolehubah lain yang berubah semasa masa jalan
// will be actually initialized and changed at run time // based on your business logic var infoEnabled bool errorUnlessEnabled := zap.LevelEnablerFunc(func(level zapcore.Level) bool { // true: log message at this level // false: skip message at this level return level >= zapcore.ErrorLevel || infoEnabled }) core := zapcore.NewCore( zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), os.Stdout, errorUnlessEnabled, ) logger := zap.New(core) logger.Info("foo") // not logged infoEnabled = true logger.Info("foo again") // logged
pembolehubah. infoenabled
https://play.golang.org/p/ot3nvnp1bwc
Atas ialah kandungan terperinci Adakah mungkin untuk mengemas kini tahap log logger zap pada masa jalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Sejak penubuhannya pada tahun 2009, Bitcoin telah menjadi peneraju dalam dunia mata wang kripto dan harganya telah mengalami turun naik yang besar. Untuk memberikan gambaran keseluruhan sejarah yang komprehensif, artikel ini menyusun data harga Bitcoin dari 2009 hingga 2025, meliputi peristiwa pasaran utama, perubahan dalam sentimen pasaran dan faktor penting yang mempengaruhi pergerakan harga.

1. Mula-mula, klik kanan pada ruang kosong bar tugas di bahagian bawah Windows 11 dan pilih [Taskbar Settings]. 2. Cari [taskbarcorneroverflow] di sebelah kanan dalam tetapan bar tugas. 3. Kemudian cari [jam] atau [Jam] di atasnya dan pilih untuk menghidupkannya. Kaedah 2: 1. Tekan pintasan papan kekunci [win+r] untuk memanggil larian, masukkan [regedit] dan tekan Enter untuk mengesahkan. 2. Buka editor pendaftaran, cari [HKEY_CURRENT_USERControlPanel] di dalamnya dan padamkannya. 3. Selepas memadam, mulakan semula komputer dan anda akan digesa untuk konfigurasi Apabila anda kembali ke sistem, masa akan dipaparkan.

Jawapan: Forum komuniti dan kumpulan perbincangan berikut tersedia untuk soalan pengaturcaraan fungsi Java: StackOverflow: Tapak web Soal Jawab pengaturcaraan terbesar di dunia dengan komuniti pakar pengaturcaraan fungsi Java. JavaFunctionalProgramming: Forum komuniti yang memfokuskan pada pengaturcaraan berfungsi Java, menyediakan perbincangan tentang konsep, ciri bahasa dan amalan terbaik. Redditr/functionaljava: Subreddit memfokuskan pada pengaturcaraan Java berfungsi, memfokuskan pada alatan, perpustakaan dan teknologi. Discord: JavaFunctional Programming: Perkhidmatan Discord yang menyediakan perbincangan masa nyata, perkongsian kod dan kerjasama

Bagaimanakah saya menggunakan kod Python orang lain? Cari repositori kod: Cari kod yang anda perlukan pada platform seperti PyPI dan GitHub. Kod pemasangan: Gunakan pip atau klon repositori GitHub untuk memasang. Import modul: Gunakan pernyataan import dalam skrip anda untuk mengimport modul yang dipasang. Bekerja dengan kod: Akses fungsi dan kelas dalam modul. (Pilihan) Sesuaikan kod: Ubah suai kod mengikut keperluan agar sesuai dengan projek anda.

Apakah yang perlu saya lakukan jika masa pada komputer win11 saya sentiasa salah? Kita semua menetapkan masa atau kalendar apabila menggunakan sistem win11, tetapi ramai pengguna bertanya bahawa masa komputer sentiasa salah, jadi apa yang berlaku? Pengguna boleh terus mengklik pada bar tugas di bawah, dan kemudian mencari taskbarcorneroverflow untuk menyediakannya. Biarkan tapak ini memperkenalkan kepada pengguna secara terperinci cara melaraskan ralat masa pada komputer Win11. Cara melaraskan masa yang salah pada komputer Windows 11 Kaedah 1: 1. Mula-mula kita klik kanan pada ruang kosong bar tugas di bawah dan pilih Tetapan Bar Tugas. Kaedah 2: 1. Tekan pintasan papan kekunci win+r untuk memanggil run, masukkan regedit dan tekan Enter untuk mengesahkan.

Jenis pengecualian biasa dan langkah pembaikan mereka dalam pembangunan fungsi Java Semasa pembangunan fungsi Java, pelbagai pengecualian mungkin ditemui, yang menjejaskan pelaksanaan fungsi yang betul. Berikut ialah jenis pengecualian biasa dan langkah pembaikannya: 1. Perihalan NullPointerException: Dilemparkan apabila mengakses objek yang belum dimulakan. Betulkan: Pastikan anda menyemak objek untuk bukan nol sebelum menggunakannya. Contoh kod: cuba{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

limpahan ialah sifat CSS yang digunakan untuk mengawal mod paparan kandungan elemen apabila ia melebihi bekas Nilai yang tersedia termasuk: kelihatan: kandungan kelihatan, bekas limpahan tersembunyi: kandungan limpahan dipotong tatal: yang. bar skrol dipaparkan untuk melihat kandungan limpahan auto: penyemak imbas secara automatik menentukan Sama ada untuk memaparkan bar skrol mewarisi: mewarisi atribut limpahan elemen induk

Sebagai platform video pendek yang terkenal di dunia, Douyin mempunyai pangkalan pengguna dan pencipta kandungan yang besar. Walau bagaimanapun, memandangkan peraturan platform sentiasa dikemas kini dan dipertingkatkan, sesetengah pengguna mungkin menghadapi larangan akaun. Ini telah menimbulkan persoalan umum tentang ketelusan dan keadilan pengurusan platform. Artikel ini akan membincangkan isu larangan akaun Douyin dan sama ada pengguna mempunyai cara untuk merayu selepas akaun mereka diharamkan. Mungkin terdapat banyak sebab untuk diharamkan pada platform Douyin, termasuk tetapi tidak terhad kepada kandungan haram, pelanggaran peraturan platform, pelanggaran hak orang lain, dsb. Untuk mengekalkan susunan platform dan kepentingan pengguna, Douyin telah menyediakan satu siri peraturan dan mekanisme semakan. Apabila sesetengah pengguna melanggar peraturan, akaun mereka mungkin diharamkan. Walau bagaimanapun, sesetengah pengguna mungkin mempersoalkan atau tidak berpuas hati dengan sebab larangan tersebut
