/** * */ package org.akaza.openclinica.service.usageStats; import java.util.Iterator; import java.util.Map; import javax.servlet.ServletContext; import javax.sql.DataSource; import org.akaza.openclinica.dao.hibernate.UsageStatsServiceDAO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author pgawade * */ public class LogUsageStatsService { protected final static Logger logger = LoggerFactory.getLogger("org.akaza.openclinica.service.usageStats.LogUsageStatsService"); DataSource dataSource; UsageStatsServiceDAO usageStatsServiceDAO; ServletContext context; public LogUsageStatsService(DataSource dataSource) { this.dataSource = dataSource; } // constants used for usage statistics public final static String event = "EVENT: "; public final static String event_start = "EVENT START: ";// This will be // followed by the // name of the // event public final static String event_complete = "EVENT COMPLETE: ";// This will // be // followed // by the // name of // the event public final static String event_details = "EVENT DETAILS: ";// This will be // followed by // the event // details // information // constants for event messages public final static String event_msg_OC_started = "US003 OpenClinica was started"; // constants for event detail parameters public final static String OC_start_time = "oc_start_time"; // public final static String OC_init_complete_time = "init_complete_time"; public final static String OC_stop_time = "oc_stop_time"; public final static String OC_last_system_start = "Last System start time"; public final static String OC_last_system_stop = "Last System stop time";// temporary public final static String OC_last_up_time = "Last System Uptime"; public final static String OC_version = "OC Version"; /** * @pgawade Method to log the event - start of OpenClinica initialization */ public static void logEventOCStart(Map eventDetailsMap) { // Format the event details String eventDetails = ""; StringBuffer bufEventDetails = new StringBuffer(); if (null != eventDetailsMap) { Iterator<Map.Entry<String, String>> mapIter = eventDetailsMap.entrySet().iterator(); Map.Entry<String, String> mapEntry = null; while (mapIter.hasNext()) { mapEntry = mapIter.next(); if (null != mapEntry) { if ((mapEntry.getKey().equalsIgnoreCase(OC_last_system_start)) && (mapEntry.getValue() == null)) { bufEventDetails.append(mapEntry.getKey() + ": " + "No Last System start time available; it could be first start of OpenClinica"); } else if ((mapEntry.getKey().equalsIgnoreCase(OC_last_up_time)) && (mapEntry.getValue() == null)) { } else { bufEventDetails.append(mapEntry.getKey() + ": " + mapEntry.getValue() + "\n"); } } } } eventDetails = bufEventDetails.toString(); // log event logger.info(event + event_msg_OC_started); // log event details logger.info(event_details + eventDetails); } /** * @return the dataSource */ public DataSource getDataSource() { return dataSource; } /** * @param dataSource * the dataSource to set */ public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } /** * @return the context */ public ServletContext getContext() { return context; } /** * @param context * the context to set */ public void setContext(ServletContext context) { this.context = context; } }