В этом простом приложении, где два разных файла foo.js
и bar.js
импортируют Logger.js
для создания bunyan
дочернего регистратора.
Проблема: foo.js
работает безупречноно bar.js
не может найти MyService.log
, определенный в Logger.js
.По-видимому, это связано с фиксированным относительным путем к MyService.log
, тогда как foo.js
и bar.js
находятся на разных уровнях каталогов относительно корневого каталога проекта.
Что будет лучшим способом для созданияbunyan
дочерний регистратор?
.
├── lib
| └── Logger.js
├── foo
| └── foo.js
├── bar.js
/ src / lib / Logger.js
const bunyan = require('bunyan')
const logger = bunyan.createLogger({
name: 'MyService',
streams: [
{
stream: process.stdout,
level: "info"
},
{
type: 'rotating-file',
path: '../logs/MyService.log',
period: '1w',
count: 100,
level: "debug"
}
]
})
module.exports = {
getChildLogger(componentName) {
return logger.child({
component: componentName
})
}
}
/ src / foo / foo.js
const log = require('../lib/Logger').getChildLogger('foo')
log.info('Foo')
/ src / bar.js
const log = require('./lib/Logger').getChildLogger('foo')
log.info('Bar')