mirror of
https://github.com/overleaf/overleaf.git
synced 2025-01-24 01:23:20 +00:00
default ring buffer size to zero
This commit is contained in:
parent
b31022e329
commit
cb22e98766
2 changed files with 30 additions and 20 deletions
|
@ -8,23 +8,28 @@ const Logger = module.exports = {
|
|||
this.defaultLevel =
|
||||
process.env['LOG_LEVEL'] || (this.isProduction ? 'warn' : 'debug')
|
||||
this.loggerName = name
|
||||
this.ringBuffer = new bunyan.RingBuffer({
|
||||
limit: process.env['LOG_RING_BUFFER_SIZE'] || 30
|
||||
})
|
||||
this.ringBufferSize = parseInt(process.env['LOG_RING_BUFFER_SIZE']) || 0
|
||||
const loggerStreams = [
|
||||
{
|
||||
level: this.defaultLevel,
|
||||
stream: process.stdout
|
||||
}
|
||||
]
|
||||
if (this.ringBufferSize > 0) {
|
||||
this.ringBuffer = new bunyan.RingBuffer({limit: this.ringBufferSize})
|
||||
loggerStreams.push({
|
||||
level: 'trace',
|
||||
type: 'raw',
|
||||
stream: this.ringBuffer
|
||||
})
|
||||
}
|
||||
else {
|
||||
this.ringBuffer = null
|
||||
}
|
||||
this.logger = bunyan.createLogger({
|
||||
name,
|
||||
serializers: bunyan.stdSerializers,
|
||||
streams: [
|
||||
{
|
||||
level: this.defaultLevel,
|
||||
stream: process.stdout
|
||||
},
|
||||
{
|
||||
level: 'trace',
|
||||
type: 'raw',
|
||||
stream: this.ringBuffer
|
||||
}
|
||||
]
|
||||
streams: loggerStreams
|
||||
})
|
||||
if (this.isProduction) {
|
||||
// clear interval if already set
|
||||
|
@ -51,6 +56,7 @@ const Logger = module.exports = {
|
|||
}
|
||||
request(options, (err, response, body) => {
|
||||
if (err) {
|
||||
this.logger.level(this.defaultLevel)
|
||||
return
|
||||
}
|
||||
if (parseInt(body) > Date.now()) {
|
||||
|
@ -165,7 +171,7 @@ const Logger = module.exports = {
|
|||
},
|
||||
|
||||
error(attributes, message, ...args) {
|
||||
if (this.isProduction) {
|
||||
if (this.ringBuffer !== null) {
|
||||
attributes.logBuffer = this.ringBuffer.records
|
||||
}
|
||||
this.logger.error(attributes, message, ...Array.from(args))
|
||||
|
|
|
@ -338,16 +338,16 @@ describe('LoggingManager', function() {
|
|||
]
|
||||
})
|
||||
|
||||
describe('in production', function() {
|
||||
describe('when ring buffer size is positive', function() {
|
||||
beforeEach(function() {
|
||||
process.env['NODE_ENV'] = 'production'
|
||||
process.env['LOG_RING_BUFFER_SIZE'] = '20'
|
||||
this.logger = this.LoggingManager.initialize(this.loggerName)
|
||||
this.logger.ringBuffer.records = this.logBufferMock
|
||||
this.logger.error({}, 'error')
|
||||
})
|
||||
|
||||
afterEach(function() {
|
||||
process.env['NODE_ENV'] = undefined
|
||||
process.env['LOG_RING_BUFFER_SIZE'] = undefined
|
||||
})
|
||||
|
||||
it('should include buffered logs in error log', function() {
|
||||
|
@ -357,13 +357,17 @@ describe('LoggingManager', function() {
|
|||
})
|
||||
})
|
||||
|
||||
describe('not in production', function() {
|
||||
describe('when ring buffer size is zero', function() {
|
||||
beforeEach(function() {
|
||||
process.env['LOG_RING_BUFFER_SIZE'] = '0'
|
||||
this.logger = this.LoggingManager.initialize(this.loggerName)
|
||||
this.logger.ringBuffer.records = this.logBufferMock
|
||||
this.logger.error({}, 'error')
|
||||
})
|
||||
|
||||
afterEach(function() {
|
||||
process.env['LOG_RING_BUFFER_SIZE'] = undefined
|
||||
})
|
||||
|
||||
it('should not include buffered logs in error log', function() {
|
||||
chai.expect(this.mockBunyanLogger.error.lastCall.args[0].logBuffer).be
|
||||
.undefined
|
||||
|
|
Loading…
Reference in a new issue