'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); }); }, };