/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * copyright 2003-2010 Akaza Research */ package org.akaza.openclinica.log; import org.slf4j.MDC; import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.core.spi.FilterReply; /** * @author pgawade * @version 1.0 (22/Nov/2010) Logback log filter to get logs for facility AUTH */ public class LogFilterOther extends LogFilterBase { @Override public FilterReply decide(LoggingEvent event) { MDC.remove(FACILITY_CODE_KEY); int logFacilityCode = getLogFacilityCode(event.getLoggerName()); MDC.put(FACILITY_CODE_KEY, new Integer(logFacilityCode).toString());// This // is // done // only once // for each log request if (logFacilityCode == SYSLOG_FACILITY_DEFAULT) { return FilterReply.ACCEPT; } else { return FilterReply.DENY; } }// decide public int getLogFacilityCode(String loggerName) { int logFacilityCode = -1; if ((loggerName.contains(".login")) || (loggerName.contains("core.OpenClinicaPasswordEncoder")) || (loggerName.contains("domain.user"))) { logFacilityCode = SYSLOG_FACILITY_AUTH; } else if ((loggerName.contains("service.crfdata")) || (loggerName.contains("control.admin"))) { logFacilityCode = SYSLOG_FACILITY_UUCP; } else if ((loggerName.contains(".submit")) || (loggerName.contains("domain.crfdata")) // commented out following packages as it is // overlapping with the LPR facility // || (loggerName.contains("dao.rule")) // || (loggerName.contains("domain.rule")) // || (loggerName.contains("logic.rulerunner")) // || // (loggerName.contains("dao.rule")) // || (loggerName.contains("service.rule")) || (loggerName.contains("logic.score")) || (loggerName.contains("service.crfdata")) || (loggerName.contains("validator.rule.action")) || (loggerName.contains("control.form")) || (loggerName.contains("web.crfdata"))) // from // ws { logFacilityCode = SYSLOG_FACILITY_USER; } else if ((loggerName.contains("dao.admin")) || (loggerName.contains("dao.core")) || (loggerName.contains("dao.extract")) || (loggerName.contains("dao.hibernate")) || (loggerName.contains("dao.logic")) || (loggerName.contains("dao.login")) || (loggerName.contains("dao.managestudy")) || (loggerName.contains("dao.rule")) || (loggerName.contains("dao.rule.action")) || (loggerName.contains("dao.service")) || (loggerName.contains("dao.submit")) || (loggerName.contains("dao.ws"))) { logFacilityCode = SYSLOG_FACILITY_AUTHPRIV; } else if ((loggerName.contains("bean.rule")) || (loggerName.contains("dao.rule")) || (loggerName.contains("domain.rule")) || (loggerName.contains("logic.rulerunner")) || (loggerName.contains("service.rule")) || (loggerName.contains("control.submit"))) { logFacilityCode = SYSLOG_FACILITY_LPR; } else if ((loggerName.contains("bean.extract")) || (loggerName.contains("dao.extract")) || (loggerName.contains("logic.odmExport")) || (loggerName.contains("service.extract"))) { logFacilityCode = SYSLOG_FACILITY_CRON; } else if ((loggerName.contains("core.EmailEngine")) || (loggerName.contains("core.OpenClinicaMailSender"))) // ws { logFacilityCode = SYSLOG_FACILITY_MAIL; } else if ((loggerName.contains(".exception"))) { logFacilityCode = SYSLOG_FACILITY_DAEMON; } return logFacilityCode; } }// class LogFilterFacilityAUTH