Como criar log com Node.js
Neste tutorial, será apresentado como criar logs com Node.js.
Primeiramente, será abordado como instalar e usar a biblioteca Winston.
Em seguida, serão explicados os níveis de log.
Por fim, será demonstrado como salvar os logs no arquivo utilizando Node.js
Baixar o código fonte: Download
Full Stack: Curso de React e Node.js: Mais Detalhes do Curso
Como enviar SMS com Node.js: Acessar
Playlist completa como criar aplicação segura com Node.js: Acessar
Aulas gratuitas do curso de Node.js: Acessar
Para começar, é criado o arquivo "package.json" executando o comando "npm init" no terminal do editor ou no prompt de comando.
Em seguida, é instalada a dependência Express.
npm install express
Também é instalada a dependência Winston responsável por salvar os logs.
npm install --save winston
Criado o arquivo "app.js" com as rotas raiz e de login utilizando Express, e indicado para rodar o projeto na porta 8080.
// Incluir as bibliotecas
// Gerencia as requisições, rotas e URLs, entre outra funcionalidades
const express = require("express");
// Chamar a função express
const app = express();
// Criar a rota inicial
// Endereço para acessar: http://localhost:8080
app.get("/", (req, res) => {
// Retornar a frase para a aplicação que fez a requisição da rota
res.send("Página inicial.");
});
// Criar a rota login
// Endereço para acessar: http://localhost:8080/login
app.get("/login", (req, res) => {
// Retornar a frase para a aplicação que fez a requisição da rota
res.status(401).send("Erro: Usuário ou a senha incorreta!");
});
// Iniciar o servidor na porta 8080, criar a função utilizando modelo Arrow function para retornar a mensagem de sucesso
app.listen(8080, () => {
console.log("Servidor iniciado na porta 8080: http://localhost:8080");
});
Em seguida, será criado o arquivo "logger.js", responsável por salvar os logs no arquivo "logs/arquivo_de_log.log".
// Incluir a biblioteca de log
const {createLogger, transports, format } = require("winston");
// Criar o logger personalizado
const logger = createLogger({
// Definir o nível mínimo de log (debug, info, warn, error)
level: "debug",
// Definir o formato das mensagens de log como JSON
format: format.json(),
// Definir os métodos de log (info, warn, error, etc.)
transports: [
// Definir onde será salvo os log
new transports.File({
filename: "logs/arquivo_de_log.log",
}),
]
});
// Exporta o logger para que possa ser usado em outros módulos
module.exports = logger;
Para utilizar o arquivo responsável por salvar os logs, é necessário incluí-lo no arquivo app.js.
// Incluir o arquivo responsável em salvar os logs
const logger = require('./logger');
Com o arquivo incluído, na rota raiz será acrescentado o código para salvar o log no nível de debug.
app.get("/", (req, res) => {
// Salvar o log no nível debug
logger.debug("Acessou a página inicial.");
// Retornar a frase para a aplicação que fez a requisição da rota
res.send("Página inicial.");
});
Na rota de login, será acrescentado o código para salvar o log no nível de erro.
app.get("/login", (req, res) => {
try {
// Gerar o erro para testar
throw new Error("Usuarios não logado.");
} catch (error) {
// Salvar o log no nível error
logger.error("Tentativa de login com dados incorretos.");
// Retornar a frase para a aplicação que fez a requisição da rota
res.status(401).send("Erro: Usuário ou a senha incorreta!");
}
});
Executando o projeto com "node app.js" ou "nodemon app.js" e acessando a rota raiz "http://localhost:8080", os logs serão salvos no nível de debug no arquivo "logs/arquivo_de_log.log". Ao acessar a rota de login "http://localhost:8080/login", os logs serão salvos no nível de erro.
Baixar o código-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido útil!