taptap/src/utils/logger.js
2019-11-05 11:19:16 +08:00

118 lines
2.3 KiB
JavaScript

'use strict';
import fs from 'fs-extra';
import FileStreamRotator from 'file-stream-rotator';
import bunyan from 'bunyan';
import config from '../../config/config'
import Logs from '../model/Logs'
const env = process.env.NODE_ENV || 'production';
const isDev = env === 'development';
// const env = process.env.NODE_ENV || 'development';
// const isDev = env === 'development';
// const logDir = config.logs_path;
const logDir = '/data/logs';
// const logDir = 'E://logs/taptap';
fs.existsSync(logDir) || fs.mkdirSync(logDir);
console.log('logDir:',logDir)
console.log('env', env)
let logger = null;
const createLogger = function(appName) {
const streams = [{
level: 'info',
stream: FileStreamRotator.getStream({
date_format: 'YYYYMMDD',
filename: `${logDir}/${'taptap'}-%DATE%.log`,
frequency: 'daily',
verbose: false,
}),
}];
if (isDev) {
streams.push({
level: 'debug',
stream: process.stdout,
});
}
return bunyan.createLogger({
name: 'taptap',
serializers: bunyan.stdSerializers,
streams: streams,
src: false,
});
};
export default {
info(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.info(obj, msg);
} else {
logger.info(obj);
}
},
error(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.error(obj, msg);
} else {
logger.error(obj);
}
},
warn(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.warn(obj, msg);
} else {
logger.warn(obj);
}
},
debug(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.debug(obj, msg);
} else {
logger.debug(obj);
}
},
trace(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.trace(obj, msg);
} else {
logger.trace(obj);
}
},
fatal(obj, msg) {
if (!logger) {
logger = createLogger('taptap');
}
if (msg) {
logger.fatal(obj, msg);
} else {
logger.fatal(obj);
}
},
db(err) {
const obj = new Logs({
errmsg: err
});
obj.save().then(()=>{}).catch((err)=> {
logger.error(err);
});
},
};