package org.appverse.web.framework.backend.api.services.presentation.impl.live; import org.appverse.web.framework.backend.api.helpers.log.AutowiredLogger; import org.appverse.web.framework.backend.api.model.presentation.RemoteLogRequestVO; import org.appverse.web.framework.backend.api.model.presentation.RemoteLogResponseVO; import org.appverse.web.framework.backend.api.services.presentation.AbstractPresentationService; import org.appverse.web.framework.backend.api.services.presentation.RemoteLogServiceFacade; import org.slf4j.Logger; import org.springframework.stereotype.Service; @Service("remoteLogServiceFacade") public class RemoteLogServiceFacadeImpl extends AbstractPresentationService implements RemoteLogServiceFacade { @AutowiredLogger private static Logger logger; @Override public RemoteLogResponseVO writeLog(RemoteLogRequestVO remoteLogRequestVO) throws Exception { RemoteLogResponseVO remoteLogResponseVO = new RemoteLogResponseVO(); remoteLogResponseVO.setStatus(RemoteLogResponseVO.OK); String s = remoteLogRequestVO.getLogLevel().toUpperCase(); if(s.equals("DEBUG")){ logger.debug(remoteLogRequestVO.getMessage()); } else if(s.equals("INFO")){ logger.info(remoteLogRequestVO.getMessage()); } else if(s.equals("WARN")){ logger.warn(remoteLogRequestVO.getMessage()); } else if(s.equals("ERROR")){ logger.error(remoteLogRequestVO.getMessage()); } else if(s.equals("TRACE")){ logger.trace(remoteLogRequestVO.getMessage()); } else{ // If the trace level is not recognized we write the log anyway with "DEBUG" level so we don't lose // information in the log but we return an error logger.debug(remoteLogRequestVO.getMessage()); remoteLogResponseVO.setStatus(RemoteLogResponseVO.ERROR); remoteLogResponseVO.setMessage("Unrecognized log level. The log was written with default DEBUG level. Valid values are DEBUG, INFO, WARN, ERROR, TRACE"); } return remoteLogResponseVO; } }