>  기사  >  웹 프론트엔드  >  Express에서의 log4js의 실제 사용법에 대해

Express에서의 log4js의 실제 사용법에 대해

亚连
亚连원래의
2018-06-06 11:27:073281검색

이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.