Existe alguma biblioteca que me ajude a lidar com o logon no meu aplicativo Node.Js? Tudo o que quero fazer é escrever todos os logs em um arquivo e também preciso de opções como estender o arquivo após determinado tamanho ou data.
Incorporei o log4js, tentando manter todos os detalhes de configuração em um arquivo e usar apenas os métodos em outros arquivos de aplicativos para facilitar a manutenção. Mas não funciona como esperado. Aqui está o que estou tentando fazer
var log4js = require('log4js');
log4js.clearAppenders()
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('test.log'), 'test');
var logger = log4js.getLogger('test');
logger.setLevel('ERROR');
var traceLogger = function (message) {
logger.trace('message');
};
var errorLogger = function (message) {
logger.trace(message);
};
exports.trace = traceLogger;
exports.error = errorLogger;
Eu incluí este arquivo em outros arquivos e tentei
log.error ("Hello Error Message");
Mas isto não está funcionando. Há algo de errado nisso?
Respostas:
Winston é uma biblioteca de registro muito boa. Você pode gravar logs em um arquivo usando-o.
Código seria algo como:
Você pode usar isso como:
fonte
Scribe.JS Lightweight Logger
Eu procurei por muitos registradores e não consegui encontrar uma solução leve - então decidi criar uma solução simples que é postada no github.
Espero que isso ajude você.
Demo Online
http://bluejamesbond.github.io/Scribe.js/
Acesso seguro da web a logs
Imprime texto bonito para o console também!
Acesso à Web
Github
https://github.com/bluejamesbond/Scribe.js
fonte
O Log4js é uma das bibliotecas de log mais populares para aplicativos nodejs.
Ele suporta muitos recursos interessantes:
Exemplo:
Instalação:
npm install log4js
Configuração (
./config/log4js.json
):Uso:
fonte
Você também pode usar o npmlog by issacs, recomendado em https://npmjs.org/doc/coding-style.html .
Você pode encontrar este módulo aqui https://github.com/isaacs/npmlog
fonte
O "logger.setLevel ('ERROR');" está causando o problema. Não entendo o porquê, mas quando o defino para algo diferente de "ALL", nada é impresso no arquivo. Eu bisbilhotei um pouco e modifiquei seu código. Está funcionando bem pra mim. Eu criei dois arquivos.
logger.js
logger.test.js
Quando executo "node logger.test.js", vejo apenas "mensagem de erro" no arquivo test.log. Se eu alterar o nível para "TRACE", as duas linhas serão impressas no test.log.
fonte
Winston é uma escolha forte para a maioria dos desenvolvedores. Estou usando o winston há muito tempo. Recentemente, usei o winston with com papertrail, que leva o registro de aplicativos ao próximo nível.
Aqui está uma bela captura de tela do site deles.
Como é útil
você pode gerenciar logs de diferentes sistemas em um só lugar. isso pode ser muito útil quando você tem dois back-end se comunicando e pode ver os logs de ambos no local.
Os logs estão ativos. você pode ver os registros em tempo real do seu servidor de produção.
Pesquisa e filtro poderosos
você pode criar alertas para enviar e-mail se encontrar texto específico no log.
e você pode encontrar mais http://help.papertrailapp.com/kb/how-it-works/event-viewer/
Uma configuração simples usando
winston
,winston-express
ewinston-papertrail
módulos de nó.Espero que isso ajude alguém a gerenciar seus logs !!
fonte
Um módulo 'nodejslogger' pode ser usado para um log simples. Possui três níveis de log (INFO, ERRO, DEBUG)
D: Depuração, I: Informações, E: Erro
O módulo pode ser acessado em: https://www.npmjs.com/package/nodejslogger
fonte
Observe que errorLogger é um wrapper em torno de logger.trace . Mas o nível de logger é ERROR, portanto logger.trace não registrará sua mensagem nos anexos do logger .
A correção é para mudar logger.trace para logger.error no corpo de errorLogger .
fonte