GT2/GT2-iOS/node_modules/xdl/build/Logger.js.flow

57 lines
1.3 KiB
Plaintext

/**
* @flow
*/
import bunyan from '@expo/bunyan';
import path from 'path';
import UserSettings from './UserSettings';
class ConsoleRawStream {
write(rec) {
if (rec.level < bunyan.INFO) {
console.log(rec);
} else if (rec.level < bunyan.WARN) {
console.info(rec);
} else if (rec.level < bunyan.ERROR) {
console.warn(rec);
} else {
console.error(rec);
}
}
}
// TODO(perry) teach flow about the logger type here
let logger: any = bunyan.createLogger({
name: 'expo',
serializers: bunyan.stdSerializers,
streams: [
{
level: 'debug',
type: 'rotating-file',
path: path.join(UserSettings.dotExpoHomeDirectory(), 'log'),
period: '1d', // daily rotation
count: 3, // keep 3 back copies
},
...(process.env.DEBUG && process.env.NODE_ENV !== 'production'
? [
{
type: 'raw',
stream: new ConsoleRawStream(),
closeOnExit: false,
level: 'debug',
},
]
: []),
],
});
logger.notifications = logger.child({ type: 'notifications' });
logger.global = logger.child({ type: 'global' });
logger.DEBUG = bunyan.DEBUG;
logger.INFO = bunyan.INFO;
logger.WARN = bunyan.WARN;
logger.ERROR = bunyan.ERROR;
export default logger;