Dalam artikel ini, kita akan membahas cara menggunakan pino sebagai logger dalam berbagai framework, seperti Express.js, Nest.js, dan H3.
Penggunaan Pino dengan Express.js
Untuk menggunakan pino dengan Express.js, Anda dapat mengimpor modul pino-http dan menambahkan middleware-nya ke aplikasi Express.js. Berikut adalah contoh kode:
const express = require('express');
const { logger } = require('pino-http');
const app = express();
app.use(logger({ }));
app.get('/hello', (req, res) => {
console.log('Hello world!');
res.send('Hello world!');
});
app.listen(3000);
Dalam contoh di atas, kita mengimpor modul pino-http dan menambahkan middleware-nya ke aplikasi Express.js menggunakan metode app.use()
. Kita juga dapat meningkatkan logging dengan menggunakan opsi seperti level
untuk memfilter log.
Penggunaan Pino dengan Nest.js
Nest.js adalah framework JavaScript yang dibangun atas foundation TypeScript. Untuk menggunakan pino dengan Nest.js, Anda dapat mengimpor modul LoggerModule
dan Logger
dari nestjs-pino
, serta menambahkan middleware-nya ke aplikasi Nest.js.
Berikut adalah contoh kode:
import { Controller, Get } from '@nestjs/common';
import { Logger } from 'nestjs-pino';
@Controller()
export class AppController {
constructor(private readonly logger: Logger) {}
@Get()
getHello() {
this.logger.log('something');
return `Hello world`;
}
}
@Module({
controllers: [AppController],
imports: [LoggerModule.forRoot()]
})
class MyModule {}
async function bootstrap() {
const app = await NestFactory.create(MyModule);
await app.listen(3000);
}
Dalam contoh di atas, kita mengimpor modul LoggerModule
dan Logger
dari nestjs-pino
, serta menambahkan middleware-nya ke aplikasi Nest.js menggunakan metode app.use()
. Kita juga dapat meningkatkan logging dengan menggunakan opsi seperti level
untuk memfilter log.
Penggunaan Pino dengan H3
H3 adalah framework JavaScript yang dibangun atas foundation Node.js. Untuk menggunakan pino dengan H3, Anda dapat mengimpor modul pino
dan menambahkan middleware-nya ke aplikasi H3.
Berikut adalah contoh kode:
import { createApp, createRouter, eventHandler, fromNodeMiddleware } from "h3";
import pino from 'pino-http';
const app = createApp();
const router = createRouter();
app.use(router);
app.use(fromNodeMiddleware(pino()));
app.use(eventHandler((event) => {
event.node.req.log.info('something');
return 'hello world';
}));
router.get(
"/",
eventHandler((event) => {
return { path: event.path, message: "Hello World!" };
}),
);
Dalam contoh di atas, kita mengimpor modul pino
dan menambahkan middleware-nya ke aplikasi H3 menggunakan metode app.use()
. Kita juga dapat meningkatkan logging dengan menggunakan opsi seperti level
untuk memfilter log.
Kesimpulan
Pada artikel ini, kita telah membahas cara menggunakan pino sebagai logger dalam berbagai framework, seperti Express.js, Nest.js, dan H3. Pino adalah modul yang sangat berguna untuk meningkatkan logging pada aplikasi JavaScript, serta memberikan lebih banyak informasi tentang apa yang terjadi di belakang layar.