var express = require('express');
var log4js = require('log4js');
var app = express();

console.log("当前环境",process.env.NODE_ENV);
var logLevel = process.env.NODE_ENV === 'development' ? "debug" : "info";

log4js.configure({
	appenders: {
	    console: { type: 'stdout' },
	    normal: {
	    	type: 'dateFile', 
    		filename: 'logs/application' ,
    		maxLogSize: 1024*1024*10, //只有type为file时生效
    		backups: 10,//只有type为file时生效,表示超过10个log文件时,删除旧的,保留最新的10个
    		pattern: "_yyyy-MM-dd.log",
    		alwaysIncludePattern: true
    	},
	    log_error: {
	    	type: "file",  
            filename: "logs/error",
			maxLogSize: 1024*1024*100, //只有type为file时生效
	    },
	    error: {
	    	type: 'logLevelFilter',
	    	level: 'warn',
	    	appender: 'log_error',
	    }
	},
	categories: {
	    default: { appenders: ['console', 'normal', 'error'], level: logLevel },
    },
	replaceConsole: true,
	pm2: process.env.NODE_ENV === 'production', // 正式环境
	pm2InstanceVar: 'INSTANCE_ID'
});

exports.logger=function(name){
	var logger = log4js.getLogger(name);
	return logger;
}

//解决replaceConsole配置还是无效的方案,将console.log()一并打包
var logger = log4js.getLogger('console');
console.log = logger.info.bind(logger);

// app.use(log4js.connectLogger(this.logger('normal'), {level: "debug"}));