/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics.rest;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* REST endpoint that allows the web client to log errors on the server. Messages are logged at error level
* with a logger name starting with {@link #LOGGER_NAME}.
* TODO harden this for real deployments - escape the message, limit the size?
*/
@Path("clienterror")
public class LogResource {
/** Default name for the logger. */
private static final String LOGGER_NAME = "com.opengamma.web.js";
/**
* Logs an error to the server-side log.
* @param loggerNameSuffix Suffix for the logger name - this is appended to {@link #LOGGER_NAME} to generate
* the full logger name. Can be null in which case {@link #LOGGER_NAME} is used for the name
* @param message The error message
*/
@POST
@Consumes(MediaType.TEXT_PLAIN)
public void logClientError(@FormParam("logger") String loggerNameSuffix,
@FormParam("message") String message) {
String loggerName;
if (loggerNameSuffix == null) {
loggerName = LOGGER_NAME;
} else {
loggerName = LOGGER_NAME + "." + loggerNameSuffix;
}
Logger logger = LoggerFactory.getLogger(loggerName);
logger.error(message);
}
}