Symfony, Log to Database

Symfony sudah dilengkapi dengan component terkait dengan log: Monolog. Namun, symfony secara default menyimpan log hanya pada filesystem dan tidak menyediakan fitur penyimpanan log pada database. Karena memang tidak semua orang ingin menyimpan log aplikasi pada database.

In case, kita harus menambahkan fitur semacam ‘Catatan Sistem’ pada aplikasi kita untuk menganalisa kegiatan pengguna, sebagaimana yang pernah saya alami, berikut ini sharing saya. Saya mencoba untuk menyimpan log pada database MySQL. Untuk dapat menyimpan log pada database, kita harus membuat Monolog handler baru. Tutorial membuat PDOHandler sudah tersedia:

https://github.com/Seldaek/monolog/blob/master/doc/04-extending.md. Tapi kita akan merubahnya sedikit, karena symfony sudah dilengkapi dengan component terkait database: Doctrine DBAL, maka kita tidak akan menggunakan PDO tetapi menggunakan Doctrine DBAL, untuk itu handler yang kita buat akan kita beri nama DoctrineDBALHandler.

Kita akan buat class diatas sebagai symfony service

Selesai. Sekarang kita sudah bisa menggunakan logger diatas, contoh penggunaannya di controller adalah sebagai berikut:

Tentunya jangan lupa buat tabel di database dahulu:

Demikian, semoga bermanfaat.

Discussion