Vk-io: Tidak dapat menemukan cara melampirkan logger khusus

Dibuat pada 12 Des 2020  ·  8Komentar  ·  Sumber: negezor/vk-io

Apa yang kamu lakukan?

Cobalah untuk menemukan bagian dalam dokumentasi )

Apa yang Anda harapkan terjadi?

Itu tidak ada

Apa hasil sebenarnya?

Saya ingin menemukannya))

vk-io

Komentar yang paling membantu

Perpustakaan, pada prinsipnya, tidak mencatat kesalahan, karena semuanya dilemparkan ke Promise (jika tidak, akan ada anti-pola). Jika kita berbicara tentang pengecualian di middleware, maka mereka semua dapat ditangkap dengan satu root middleware:

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

Informasi lebih lanjut tentang penanganan kesalahan middleware global di sini .

Semua 8 komentar

Sebagai contoh?

Eeeem..... Misalnya, apa ini? Jika, misalnya, kemungkinan implementasi, maka saya akan mendeklarasikan antarmuka llgger, seperti objek konsol. Yaitu, metode biasa, debug () info (), varn () dan error (), dan dalam konstruktor kelas, dalam parameter opshen, akan menerima objek dengan antarmuka seperti itu.

Di mana itu berguna: ini sangat berguna ketika secara umum ada sistem logging untuk proyek tersebut, misalnya, seperti yang kami tujukan pada elk. Dalam proyek semacam itu, pesan VK juga harus sesuai dengan sistem logging umum.

Perpustakaan, pada prinsipnya, tidak mencatat kesalahan, karena semuanya dilemparkan ke Promise (jika tidak, akan ada anti-pola). Jika kita berbicara tentang pengecualian di middleware, maka mereka semua dapat ditangkap dengan satu root middleware:

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

Informasi lebih lanjut tentang penanganan kesalahan middleware global di sini .

Dan siapa yang berbicara tentang error logging? Tiket, di mana kita sekarang, terbuka tentang pencatat khusus yang mencatat semua peristiwa. Misalnya, nama metode yang dipanggil, parameter metode. Penting bagi kita untuk memahami mekanisme kerja internal perpustakaan untuk melihat panggilan apa yang terjadi di dalamnya, melihat panggilan ini di log, mengumpulkan statistik jumlah panggilan per detik, menit, jam, bulan, menganalisis hasilnya, karena ini semua terkait dengan membatasi jumlah permintaan yang diizinkan, optimalkan. Ini bukan tentang penanganan kesalahan melalui eksekusi sama sekali. Ini tentang log.

@isinkin @negezor Mengapa tiketnya ditutup?

Ini bukan tanggung jawab perpustakaan, Anda dapat membungkus semua metode dengan handler Anda sendiri dan log sesuka Anda. Pustaka memiliki kemampuan untuk mengetahui metode yang dipanggil dari modul dengan indikasi env DEBUG=vk-io:* , karena modul debug digunakan .

@negezor Saya ingin mengklarifikasi permintaan saya, mungkin disalahpahami. Saya tidak menyarankan untuk membuat perpustakaan Anda sendiri untuk masuk ke dalam vk-io . Jika itu dipahami, itu adalah sampah. Saya setuju bahwa ini bukan tanggung jawab perpustakaan. Saya bertanya bagaimana hanya perpustakaan yang ada (dalam kasus saya https://www.npmjs.com/package/bunyan) yang dapat dihubungkan ke vk-io . Artinya, bukan как создать , tetapi как подключить .

Saya pikir jelas bahwa mekanisme untuk menghubungkan logger eksternal berada di area tanggung jawab vk-io .
Sebagai contoh, saya lampirkan bagaimana ini diatur dalam TypeORM. Bahkan hanya menyalin mekanisme seperti itu akan sangat keren. https://typeorm.io/#/logging

Janji bahwa Anda dapat membungkus panggilan metode publik dalam pembungkus yang log diterima. Namun, metode ini tidak memungkinkan untuk menentukan dari log bahwa sepuluh panggilan ke messages.send benar-benar digantikan oleh satu execute . Oleh karena itu, tidak ada gunanya sebagai alat logging.

Pesan bahwa ada built-in logger DEBUG=vk-io:* bahkan tidak tahu bagaimana berkomentar. Ini bukan logger dengan segala hormat. Jika ini adalah logger, beri tahu saya cara meneruskan log tersebut ke ELK? maka saya akan setuju.

Saudara, di mana Anda?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Saiv46 picture Saiv46  ·  9Komentar

nitreojs picture nitreojs  ·  3Komentar

ProgrammingLife picture ProgrammingLife  ·  9Komentar

T1MOXA picture T1MOXA  ·  20Komentar

T1MOXA picture T1MOXA  ·  22Komentar