Node.js 로깅
Node.Js 애플리케이션에서 로깅을 처리하는 데 도움이되는 라이브러리가 있습니까? 내가하고 싶은 것은 모든 로그를 파일에 쓰고 싶습니다. 또한 특정 크기 또는 날짜 후에 파일을 롤아웃하는 것과 같은 옵션이 필요합니다.
log4js im을 통합하여 모든 구성 세부 정보를 하나의 파일로 유지하고 다른 응용 프로그램 파일의 메소드 만 사용하여 유지 보수를 쉽게했습니다. 그러나 예상대로 작동하지 않습니다. 여기 내가하려는 일이 있습니다.
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;
이 파일을 다른 파일에 포함시키고 시도했습니다.
log.error ("Hello Error Message");
그러나 작동하지 않습니다. 이것에 문제가 있습니까?
윈스턴 은 꽤 좋은 로깅 라이브러리입니다. 파일을 사용하여 로그를 파일에 쓸 수 있습니다.
코드는 다음과 같습니다.
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ json: false, timestamp: true }),
new winston.transports.File({ filename: __dirname + '/debug.log', json: false })
],
exceptionHandlers: [
new (winston.transports.Console)({ json: false, timestamp: true }),
new winston.transports.File({ filename: __dirname + '/exceptions.log', json: false })
],
exitOnError: false
});
module.exports = logger;
그런 다음 다음과 같이 사용할 수 있습니다.
var logger = require('./log');
logger.info('log to file');
Scribe.JS 경량 로거
나는 많은 로거를 살펴 보았고 가벼운 솔루션을 찾을 수 없었으므로 github에 게시 된 간단한 솔루션을 만들기로 결정했습니다.
- 사용자, 날짜 및 레벨별로 구성된 파일을 저장합니다
- 당신에게 아름다운 결과를 제공합니다 (우리 모두는 그것을 좋아합니다)
- 사용하기 쉬운 HTML 인터페이스
이것이 도움이되기를 바랍니다.
온라인 데모
http://bluejamesbond.github.io/Scribe.js/
로그에 대한 안전한 웹 액세스

콘솔에 예쁜 텍스트를 인쇄합니다!

웹 액세스

깃 허브
https://github.com/bluejamesbond/Scribe.js
Log4js 는 nodejs 애플리케이션에 가장 많이 사용되는 로깅 라이브러리 중 하나입니다.
그것은 많은 멋진 기능을 지원합니다 :
- 컬러 콘솔 로깅
- 노드의 console.log 기능 교체 (선택 사항)
- 파일 크기에 따라 로그 롤링이있는 파일 어 펜더
- SMTP, GELF, hook.io, Loggly 어 펜더
- 다중 프로세스 어 펜더 (작업자 프로세스가있을 때 유용함)
- 연결 / 익스프레스 서버용 로거
- 구성 가능한 로그 메시지 레이아웃 / 패턴
- 다른 로그 범주에 대한 다른 로그 수준 (앱 로그의 일부를 DEBUG로, 다른 일부는 오류 등으로 만들기)
예:
설치:
npm install log4js구성 (
./config/log4js.json) :{"appenders": [ { "type": "console", "layout": { "type": "pattern", "pattern": "%m" }, "category": "app" },{ "category": "test-file-appender", "type": "file", "filename": "log_file.log", "maxLogSize": 10240, "backups": 3, "layout": { "type": "pattern", "pattern": "%d{dd/MM hh:mm} %-5p %m" } } ], "replaceConsole": true }용법:
var log4js = require( "log4js" ); log4js.configure( "./config/log4js.json" ); var logger = log4js.getLogger( "test-file-appender" ); // log4js.getLogger("app") will return logger that prints log to the console logger.debug("Hello log4js");// store log in file
https://npmjs.org/doc/coding-style.html 에서 권장되는 issacs로 npmlog를 사용할 수도 있습니다 .
이 모듈은 https://github.com/isaacs/npmlog에서 찾을 수 있습니다.
"logger.setLevel ( 'ERROR');" 문제의 원인입니다. 이유를 이해하지 못하지만 "ALL"이외의 것으로 설정하면 파일에 아무것도 인쇄되지 않습니다. 나는 조금 주위를 찌르고 코드를 수정했다. 그것은 나를 위해 잘 작동합니다. 두 개의 파일을 만들었습니다.
logger.js
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 getLogger = function() {
return logger;
};
exports.logger = getLogger();
logger.test.js
var logger = require('./logger.js')
var log = logger.logger;
log.error("ERROR message");
log.trace("TRACE message");
When I run "node logger.test.js", I see only "ERROR message" in test.log file. If I change the level to "TRACE" then both lines are printed on test.log.
Winston is strong choice for most of the developers. I have been using winston for long. Recently I used winston with with papertrail which takes the application logging to next level.
Here is a nice screenshot from their site.
How its useful
you can manage logs from different systems at one place. this can be very useful when you have two backend communicating and can see logs from both at on place.
Logs are live. you can see realtime logs of your production server.
Powerful search and filter
you can create alerts to send you email if it encounters specific text in log.
and you can find more http://help.papertrailapp.com/kb/how-it-works/event-viewer/
A simple configuration using winston,winston-express and winston-papertrail node modules.
import winston from 'winston';
import expressWinston from 'express-winston';
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
// create winston transport for Papertrail
var winstonPapertrail = new winston.transports.Papertrail({
host: 'logsX.papertrailapp.com',
port: XXXXX
});
app.use(expressWinston.logger({
transports: [winstonPapertrail],
meta: true, // optional: control whether you want to log the meta data about the request (default to true)
msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
colorize: true, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
ignoreRoute: function (req, res) { return false; } // optional: allows to skip some log messages based on request and/or response
}));
I hope this helps someone manage their logs !!
A 'nodejslogger' module can be used for simple logging. It has three levels of logging (INFO, ERROR, DEBUG)
var logger = require('nodejslogger')
logger.init({"file":"output-file", "mode":"DIE"})
D : Debug, I : Info, E : Error
logger.debug("Debug logs")
logger.info("Info logs")
logger.error("Error logs")
The module can be accessed at : https://www.npmjs.com/package/nodejslogger
Observe that errorLogger is a wrapper around logger.trace. But the level of logger is ERROR so logger.trace will not log its message to logger's appenders.
The fix is to change logger.trace to logger.error in the body of errorLogger.
참고 URL : https://stackoverflow.com/questions/12016474/node-js-logging
'Programming' 카테고리의 다른 글
| ReactJS : 경고 : setState (…) : 기존 상태 전환 중에 업데이트 할 수 없습니다 (0) | 2020.05.24 |
|---|---|
| SQL 절“GROUP BY 1”은 무엇을 의미합니까? (0) | 2020.05.24 |
| 정수 범위를 지정하여 최적화 프로그램에 힌트를 줄 수 있습니까? (0) | 2020.05.24 |
| 요소의 id를 얻다 (0) | 2020.05.24 |
| 뷰 또는 부분 뷰에서 레이아웃 헤드에 CSS 또는 JavaScript 파일 추가 (0) | 2020.05.24 |
