import * as dotenv from 'dotenv' ; import { configure , Configuration } from 'log4js' ; dotenv . config ( { path : '.env' } ) ; export interface IConfig { prod : boolean ; host : string ; routePrefix : string ; apiPort : number ; socketPort : number ; jwtSecret : string ; expiresIn : string ; wxSecret : string ; wxAppid : string ; } export const config = { prod : process . env . NODE_ENV === 'production' , host : process . env . HOST , routePrefix : process . env . ROUTE_PREFIX , apiPort : Number ( process . env . API_PORT || 3000 ) , socketPort : Number ( process . env . SOCKET_PORT || 3001 ) , jwtSecret : process . env . JWT_SECRET , expiresIn : process . env . EXPIRES_IN || '15d' , wxSecret : process . env . WX_SECRET , wxAppid : process . env . WX_APPID , } ; const log4jsConfig = { appenders : { app : { type : 'dateFile' , filename : 'logs/app.log' , pattern : '.yyyy-MM-dd' , keepFileExt : true , } , errorFile : { type : 'file' , filename : 'logs/errors.log' , maxLogSize : 10485760 , keepFileExt : true , } , errors : { type : 'logLevelFilter' , level : 'ERROR' , appender : 'errorFile' , } , stdout : { type : 'stdout' , } , stderr : { type : 'stderr' , } , } , categories : { default : { appenders : [ 'app' , 'errors' ] , level : 'info' } } , } ; if ( ! config . prod ) { log4jsConfig . categories . default . appenders . push ( 'stdout' ) ; } configure ( log4jsConfig ) ;