2016-06-13 6 views
0

로깅 수준 (즉, 콘솔에 대한 모든 정보가 있지만 파일에 대한 오류 및 경고 만)에 따라 사용자 지정 winston 로거를 사용하여 콘솔과 파일에 동시에 기록합니다. 어떤 이유로 나는 콘솔을 쓰는 동안 아무 것도 쓰지 않지만 오류를 호출하더라도 콘솔에 쓰기가 가능합니다. Winston은 단일 전송에만 기록합니다.

처음에 내가 설정 winston가 파일에 있지만 콘솔에 쓴했다 동안 error = 9까지가는 trace = 0에서 시작하는 수준의 순서를 엉망. 나는 winston이 하나의 전송에만 쓰고 멈춘다고 가정한다.

내 설정은 다음과 같이 진행됩니다

import winston from 'winston'; 

const logger = new (winston.Logger)({ 
    levels: { 
    trace: 9, 
    input: 8, 
    verbose: 7, 
    prompt: 6, 
    debug: 5, 
    info: 4, 
    data: 3, 
    help: 2, 
    warn: 1, 
    error: 0, 
    }, 
    colors: { 
    trace: 'magenta', 
    input: 'grey', 
    verbose: 'cyan', 
    prompt: 'grey', 
    debug: 'blue', 
    info: 'green', 
    data: 'grey', 
    help: 'cyan', 
    warn: 'yellow', 
    error: 'red', 
    }, 
}); 

logger.add(winston.transports.Console, { 
    level: 'trace', 
    prettyPrint: true, 
    colorize: true, 
    silent: false, 
    timestamp: false, 
}); 

logger.add(winston.transports.File, { 
    prettyPrint: false, 
    level: 'error', 
    silent: false, 
    colorize: true, 
    timestamp: true, 
    filename: `${__dirname}/../logs/error.log`, 
    maxsize: 40000, 
    maxFiles: 10, 
    json: false, 
}); 

답변

0

내가 각 전송에 이름을 지정했다 보인다. 나는.

logger.add(winston.transports.Console, { 
    name: 'trace-console', 
    // ... 
}); 

logger.add(winston.transports.File, { 
    name: 'error-file', 
    // ... 
}); 

이제 예상대로 작동하는 것 같습니다.

편집 : 두 가지 이유로 모두 colorize 옵션을 true로 설정해야합니다 (?).