/** * File ./src/main/java/de/lemo/dms/core/RequestLoggingFilter.java * Lemo-Data-Management-Server for learning analytics. * Copyright (C) 2013 * Leonard Kappe, Andreas Pursian, Sebastian Schwarzrock, Boris Wenzlaff * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. **/ package de.lemo.dms.core; import java.util.List; import java.util.Map.Entry; import java.util.Set; import org.apache.log4j.Logger; import com.sun.jersey.spi.container.ContainerRequest; import com.sun.jersey.spi.container.ContainerRequestFilter; public class RequestLoggingFilter implements ContainerRequestFilter { protected final Logger logger = Logger.getLogger("Request"); @Override public ContainerRequest filter(final ContainerRequest request) { if (logger.isInfoEnabled()) { String requestInfo = request.getPath() + " (" + request.getMethod() + (request.getMediaType() == null ? "" : " " + request.getMediaType()) + ")"; logger.info(requestInfo); StringBuilder parameters = new StringBuilder("Params: "); Set<Entry<String, List<String>>> entrySet = request.getFormParameters().entrySet(); for (Entry<String, List<String>> parameter : entrySet) { parameters.append(parameter.getKey()).append(":").append(parameter.getValue()).append(", "); } if (!entrySet.isEmpty()) { parameters.setLength(parameters.length() - ", ".length()); logger.info(parameters.toString()); } } return request; } }