/** * - Sets async logger for all logs * - Defines logging folder * - Sets logging level based on properties */ public static void configureLogging(BaseProperties serverProperties) { //required to make all loggers async with LMAX disruptor System.setProperty("log4j2.contextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); System.setProperty("AsyncLogger.RingBufferSize", serverProperties.getProperty("async.logger.ring.buffer.size", "2048")); //configurable folder for logs via property. if (serverProperties.getProperty("logs.folder") == null) { System.out.println("logs.folder property is empty."); System.exit(1); } System.setProperty("logs.folder", serverProperties.getProperty("logs.folder")); //changing log level based on properties file changeLogLevel(serverProperties.getProperty("log.level")); }
public static void main(String[] args) throws Exception { Map<String, String> cmdProperties = ArgumentsParser.parse(args); ServerProperties serverProperties = new ServerProperties(cmdProperties); LoggerUtil.configureLogging(serverProperties); //required for logging dynamic context System.setProperty("data.folder", serverProperties.getProperty("data.folder")); //required to avoid dependencies within model to server.properties setGlobalProperties(serverProperties); MailProperties mailProperties = new MailProperties(cmdProperties); SmsProperties smsProperties = new SmsProperties(cmdProperties); GCMProperties gcmProperties = new GCMProperties(cmdProperties); TwitterProperties twitterProperties = new TwitterProperties(cmdProperties); Security.addProvider(new BouncyCastleProvider()); boolean restore = Boolean.parseBoolean(cmdProperties.get(ArgumentsParser.RESTORE_OPTION)); start(serverProperties, mailProperties, smsProperties, gcmProperties, twitterProperties, restore); }