public static void main(String[] args) {
        initaliseLogger();

        // Check for a defined configuration file argument
        //
        String configFilePath = DEFAULT_CONFIG_FILE;
        if (args != null && args.length > 0 && args[0] != null
                && args[0].endsWith(".xml") && args[0].length() > 5) {
            configFilePath = args[0];
        }

        // Log a message
        //
        logger.log(Level.CONFIG, "Using configuration file : " + configFilePath);

        // Log a message
        //
        logger.log(Level.INFO, "Initializing configuration data");

        // Load the configuration file using the FroshProjectConfig class
        //
        try {
            FroshProjectConfig.load(configFilePath);
        } catch (FroshProjectException e) {
            handleFatalException(e);
        }
        // Log a message
        //
        logger.log(Level.INFO, "Initializing simulation data");

        // Create the controller
        //
        try {
            new FroshProjectController();
        } catch (FroshProjectException e) {
            handleFatalException(e);
        }
        // Log a message
        //
        logger.log(Level.CONFIG, "Simulation over, exiting");
        
        // Close the logger
        //
        GestionnaireLogger.fermerLogger();
    }