그것은 윈스턴과 일반적인 문제입니다,하지만 단순한 하나를 먹을수록이 작동하지 않습니다 해결하다.
인해 윈스턴은 코딩 방법, 당신이 수송에게 자신을 differenciate, 당신은 명시 적으로 그들에게 다른 이름을 제공하여 별도의로를 선언 할 필요가 없습니다 그것으로 중요하지 않습니다만큼
var security = new(winston.Logger)({
transports: [
new(require('winston-daily-rotate-file'))({
//=>
name: 'foo',
//<=
filename: logDir + '/-security.log',
datePattern: 'dd-MM-yyyy',
prepend: true,
json: false,
timestamp: function() {
return moment().format('D/MM/YYYY HH:mm:ss:SSS');
}
})
]
});
var system = new(winston.Logger)({
transports: [
new(require('winston-daily-rotate-file'))({
//=>
name: 'bar',
//<=
filename: logDir + '/-security.log',
datePattern: 'dd-MM-yyyy',
prepend: true,
json: false,
timestamp: function() {
return moment().format('D/MM/YYYY HH:mm:ss:SSS');
}
})
]
});
이름 자체를 이 방법이 쉬운 다른 방법은 파일 이름을 전송에 대한 다른 식별자와 함께 사용하는 것입니다.
출처 : issue #101 of the official Github
편집 :
var verbose = new(require('winston-daily-rotate-file'))({
name: 'baz',
filename: logDir + '/-verbose.log',
datePattern: 'dd-MM-yyyy',
prepend: true,
json: false,
timestamp: function() {
return moment().format('D/MM/YYYY HH:mm:ss:SSS');
}
})
var security = new(winston.Logger)({
transports: [
new(require('winston-daily-rotate-file'))({
//=>
name: 'foo',
//<=
filename: logDir + '/-security.log',
datePattern: 'dd-MM-yyyy',
prepend: true,
json: false,
timestamp: function() {
return moment().format('D/MM/YYYY HH:mm:ss:SSS');
}
}),
//=>
verbose
//<=
]
});
var system = new(winston.Logger)({
transports: [
new(require('winston-daily-rotate-file'))({
//=>
name: 'bar',
//<=
filename: logDir + '/-security.log',
datePattern: 'dd-MM-yyyy',
prepend: true,
json: false,
timestamp: function() {
return moment().format('D/MM/YYYY HH:mm:ss:SSS');
}
}),
//=>
verbose
//<=
]
});
좋은 생각 ... 그래서 두 개의 서로 다른 로그가 동일한 파일에 저장할 수 있도록하고 이런 식으로. 그러나 특정 로그 이벤트를 보안 및 시스템 로그 파일에 개별적으로 저장할 수 있기를 원하지만 동시에 보안 및 시스템 로그 이벤트를 자세한 로그에 저장하기를 원합니다. 말이 돼? – deeveeABC
'loglevel :'verbose ', filename :'verbose.log ', 이름 :'baz''로 다른 전송을 선언하고 두 로거에 첨부 할 수 있습니다 – DrakaSAN
두 로거에 대한 공통 전송에 대한 편집 참조 – DrakaSAN