/* * Copyright 2013 Produban * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.produban.openbus.analysis; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.produban.openbus.util.Conf; import storm.trident.operation.BaseFilter; import storm.trident.tuple.TridentTuple; /** * Filter Web Server log * */ public class WebServerLogFilter extends BaseFilter { private static Logger LOG = LoggerFactory.getLogger(WebServerLogFilter.class); private static final long serialVersionUID = 3184944296594510118L; @Override public boolean isKeep(TridentTuple tuple) { if (LOG.isDebugEnabled()) LOG.debug("Applying WebServerLogFilter"); String host = (String)tuple.getStringByField("host"); if (Conf.FILTER_HOST_WEBSERVER !=null && !"".equals(Conf.FILTER_HOST_WEBSERVER) && !host.matches(Conf.FILTER_HOST_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter by host " + Conf.FILTER_HOST_WEBSERVER + " host " + host); return false; } if (Conf.FILTER_NOT_HOST_WEBSERVER !=null && !"".equals(Conf.FILTER_NOT_HOST_WEBSERVER) && host.matches(Conf.FILTER_NOT_HOST_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter not by host " + Conf.FILTER_NOT_HOST_WEBSERVER + " host " + host); return false; } String request = (String)tuple.getStringByField("request"); if (Conf.FILTER_REQUEST_WEBSERVER !=null && !"".equals(Conf.FILTER_REQUEST_WEBSERVER) && !request.matches(Conf.FILTER_REQUEST_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter by request " + Conf.FILTER_REQUEST_WEBSERVER + " request " + request); return false; } if (Conf.FILTER_NOT_REQUEST_WEBSERVER !=null && !"".equals(Conf.FILTER_NOT_REQUEST_WEBSERVER) && request.matches(Conf.FILTER_NOT_REQUEST_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter not by request " + Conf.FILTER_NOT_REQUEST_WEBSERVER + " request " + request); return false; } String status = (String)tuple.getStringByField("status"); if (Conf.FILTER_STATUS_WEBSERVER !=null && !"".equals(Conf.FILTER_STATUS_WEBSERVER) && !status.matches(Conf.FILTER_STATUS_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter by status " + Conf.FILTER_STATUS_WEBSERVER + " status " + status); return false; } if (Conf.FILTER_NOT_STATUS_WEBSERVER !=null && !"".equals(Conf.FILTER_NOT_STATUS_WEBSERVER) && status.matches(Conf.FILTER_NOT_STATUS_WEBSERVER)) { if (LOG.isDebugEnabled()) LOG.debug("Filter not by status " + Conf.FILTER_NOT_STATUS_WEBSERVER + " status " + status); return false; } return true; } }