


Menggunakan uber-go/zap untuk Log Berdasarkan Tahap Log untuk stdout dan stderr
Pengenalan
Perpustakaan uber-go/zap menawarkan keupayaan pembalakan yang mantap. Untuk memenuhi keperluan khusus, ia boleh memberi manfaat untuk mengarahkan log peringkat berbeza ke destinasi yang berasingan, seperti stdout dan stderr. Artikel ini meneroka cara untuk mencapai pemisahan ini, memastikan log ditulis pada peranti yang sesuai berdasarkan keterukan mereka.
Konfigurasi Pengelogan Tersuai
Untuk menentukan gelagat pengelogan tersuai dalam uber -go/zap, kita boleh menggunakan struct zap.Config. Dengan mengubah suai medan OutputPaths dan ErrorOutputPaths, kami boleh mengawal destinasi untuk tahap log yang berbeza. Walau bagaimanapun, jika hanya satu laluan ditetapkan dalam sama ada OutputPaths atau ErrorOutputPaths, semua log akan ditulis ke destinasi tunggal itu, tanpa mengira tahapnya.
Penyelesaian: Zapcore.NewTee
Untuk mencapai pemisahan yang diingini, kami menggunakan zapcore.NewTee, yang mencipta teras tee yang menggabungkan berbilang teras. Setiap teras boleh mengendalikan log peringkat tertentu secara bebas dan mengarahkannya ke destinasi masing-masing. Begini cara kami melaksanakan penyelesaian ini:
<code class="go">import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" ) func main() { stdoutSyncer := zapcore.Lock(os.Stdout) stderrSyncer := zapcore.Lock(os.Stderr) infoCore := zapcore.NewCore( zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), stdoutSyncer, zap.InfoLevel, ) errorCore := zapcore.NewCore( zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), stderrSyncer, zap.ErrorLevel, ) core := zapcore.NewTee(infoCore, errorCore) logger := zap.New(core) logger.Info("info log") logger.Error("error log") }</code>
Dalam contoh ini, kami mencipta dua teras: satu untuk log peringkat maklumat (ditulis kepada stdout) dan satu lagi untuk log peringkat ralat (ditulis kepada stderr). Fungsi zapcore.NewTee menggabungkan teras ini, membolehkan log peringkat berbeza diarahkan ke destinasi berasingan.
Dengan mengubah hala stdout atau stderr ke /dev/null, kami boleh mengesahkan lagi bahawa setiap mesej log memang ditulis ke peranti yang betul, bergantung pada tahapnya.
Atas ialah kandungan terperinci Bagaimanakah anda boleh menggunakan perpustakaan Uber Go Zap untuk memisahkan log peringkat yang berbeza kepada stdout dan stderr?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Pergi menggunakan pakej "pengekodan/binari" untuk pengekodan dan penyahkodan binari. 1) Pakej ini menyediakan binary.write dan binari. Baca fungsi untuk menulis dan membaca data. 2) Beri perhatian untuk memilih Endian yang betul (seperti Bigendian atau Littleendian). 3) Penjajaran data dan pengendalian ralat juga penting untuk memastikan ketepatan dan prestasi data.

"Bytes" PakejingoOfferseficientFunctionsFormAnipulatingBytesLices.1) usebytes.joinforconcatenatingslices, 2) bytes.bufferforincrementalwriting, 3) bytes.indexorbytes.indexbyteforsearching, 4)

Theencoding/BinaryPackageingoisfecefectiveFectimizingBinaryOperationsduetoitssupportforendiannessandefficientdatahandling.toenhancePreforance: 1) usebinary.nativiaryendianfornativeendiannesstoavoidbyteswapping.2) Batchreadandwriteoperationsoperationstoreducei/ooover

Pakej Bytes Go digunakan terutamanya untuk memproses irisan byte dengan cekap. 1) Menggunakan bait.Buffer boleh melakukan splicing rentetan dengan cekap untuk mengelakkan peruntukan memori yang tidak perlu. 2) Fungsi bait. Digunakan untuk membandingkan irisan byte dengan cepat. 3) Fungsi bytes.index, bytes.split dan bytes.ReplaceAll boleh digunakan untuk mencari dan memanipulasi kepingan byte, tetapi isu -isu prestasi perlu diberi perhatian.

Pakej byte menyediakan pelbagai fungsi untuk memproses irisan byte dengan cekap. 1) Gunakan bytes.Contains untuk memeriksa urutan byte. 2) Gunakan bytes.split untuk memecah irisan byte. 3) Gantikan urutan byte bytes.replace. 4) Gunakan bytes.join untuk menyambungkan kepingan byte berganda. 5) Gunakan bytes.buffer untuk membina data. 6) gabungan bytes.map untuk pemprosesan ralat dan pengesahan data.

Pakej Pengekodan/Perduaan Go adalah alat untuk memproses data binari. 1) Ia menyokong perintah byte endian kecil dan besar-endian dan boleh digunakan dalam protokol rangkaian dan format fail. 2) Pengekodan dan penyahkodan struktur kompleks boleh dikendalikan melalui fungsi membaca dan menulis. 3) Perhatikan konsistensi pesanan byte dan jenis data apabila menggunakannya, terutamanya apabila data dihantar antara sistem yang berbeza. Pakej ini sesuai untuk pemprosesan data binari yang cekap, tetapi memerlukan pengurusan yang teliti dari irisan dan panjang byte.

"Bytes" PackageingoisessentialBecauseItoffiSficientoperationsOnbyteslices, CrucialForbinaryDatahandling, TextProcessing, andnetworkCommunications.BytesLicesaremutable, membolehkanForperformance-Enhancing-placemodifications, MakeTypackage

Go'sstringspackageCludeSessessSentialfunctionsLikeContains, trimspace, split, andReplaceAll.1) containseficientlyChorSforsubstrings.2) trimspaceremovesWhiteSpaceSetoensureSriteAdtegrity.3) SplitParstructStrikeCRIKSv


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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.
