이 글은 주로 Express의 고급 log4js에 대한 실용적인 입문 가이드를 소개하고 있습니다.
온라인 프로젝트에서 로그는 매우 중요한 부분입니다. Log4js는 자주 사용되는 로깅 구성 요소이며 Express와 함께 사용되는 경우가 많습니다. 이 기사는 log4js의 사용과 이를 Express와 통합하는 방법을 설명하는 소개 예제로 시작됩니다.
시작 예제
출력 로그는 로그 인쇄 시간, 로그 수준, 로그 분류, 로그 내용을 포함하여 다음과 같습니다.
// started.js var log4js = require('log4js'); var logger = log4js.getLogger(); logger.debug('hello world'); // 输出: // [2017-02-28 21:28:22.853] [DEBUG] [default] - hello world
Log level
logger.setLevel('INFO');은 인쇄하려는 가장 낮은 수준의 로그가 INFO라는 의미입니다. 즉, logger와 같이 INFO보다 낮은 수준의 인터페이스를 호출합니다. debug(), 로그는 인쇄되지 않습니다.
var log4js = require('log4js'); var logger = log4js.getLogger(); logger.setLevel('INFO'); logger.debug('level: debug'); logger.info('level: info'); logger.error('level: error'); // 输出如下: // [2017-02-28 21:50:45.372] [INFO] [default] - level: info // [2017-02-28 21:50:45.376] [ERROR] [default] - level: error
로그 카테고리
레벨 외에도 로그도 분류할 수 있습니다. log4js.getLogger(카테고리)는 아래와 같이
var log4js = require('log4js'); var alogger = log4js.getLogger('category-a'); var blogger = log4js.getLogger('category-b'); alogger.info('hello'); blogger.info('hello'); // 输出如下: // [2017-02-28 22:36:57.570] [INFO] category-a - hello // [2017-02-28 22:36:57.574] [INFO] category-b - hello
appenders
appenders는 로그 출력 위치를 지정하며 여러 개가 될 수 있습니다. 동시에 구성되면 카테고리를 사용하여 구별하십시오. 예를 들어 log4js.getLogger('info')는 유형이 dateFile인 구성을 적용합니다.
console 유형의 구성에서는 카테고리를 선언하지 않으므로 모든 로그가 콘솔에 인쇄됩니다.
var log4js = require('log4js'); log4js.configure({ appenders: [ { type: 'console'}, { type: 'dateFile', filename: './logs/info.log', category: 'info' } ] }); var logger = log4js.getLogger('info'); logger.setLevel('INFO'); logger.trace('trace'); logger.debug('debug'); logger.info('info'); // 输出如下: // [2017-02-28 22:51:30.723] [INFO] info - info
express application
비교적 간단한 예는 다음과 같습니다. 모든 로그가 콘솔에 인쇄됩니다.
var express = require('express'); var log4js = require('log4js'); var app = express(); log4js.configure({ appenders: [ { type: 'console', category: 'app' } ] }); var logger = log4js.getLogger('app'); logger.setLevel('INFO'); // 级别 > INFO 的日志才会被打印 app.use( log4js.connectLogger(logger) ); app.use(function(req, res, next){ res.send('ok'); }); app.listen(3000);
http://127.0.0.1:3000 방문, 인쇄 로그는 다음과 같습니다
[2017-03-01 00:28:29.301] [INFO] app - ::ffff:127.0.0.1 - - "GET / HTTP/ 1.1" 304 - "" "Mozilla/5.0(Macintosh; Intel Mac OS 수준.
// 级别 > INFO 的日志才会被打印 logger.setLevel('INFO'); // 日志的级别是 WARN app.use( log4js.connectLogger(logger, {level: 'WARN'}) );
다음 예시와 같이 선언된 로그 레벨이 logger.setLevel(level)에 정의된 레벨보다 낮은 경우 로그가 인쇄되지 않습니다.
logger.setLevel('INFO'); app.use( log4js.connectLogger(logger, {level: 'DEBUG'}) );
위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
Vue가 배열이나 객체의 변경 사항을 감지할 수 없는 문제를 해결하는 방법은 무엇입니까? Vue의 감지 시퀀스에 객체의 새로운 속성을 추가하는 방법은 무엇입니까? JS에서 난수를 생성하는 방법(자세한 튜토리얼)위 내용은 Express에서의 log4js의 실제 사용법에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!