# AccessConstants.java

    /*
     *  Licensed to the Apache Software Foundation (ASF) under one
     *  or more contributor license agreements.  See the NOTICE file
     *  distributed with this work for additional information
     *  regarding copyright ownership.  The ASF licenses this file
     *  to you 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 org.apache.synapse.transport.http.access;

    /**
     * Constants used in the Access Class
     */
    public class AccessConstants {

        /**
         * Pattern used to log - Default is COMBINED_PATTERN given below.
         */
        public static final String COMBINED_PATTERN =
                "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"";

        public static final String LOG_PATTERN =
                "%{X-Forwarded-For}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"";

        /**
         * Common log pattern.
         */
        public static final String COMMON_PATTERN =
                 "%h %l %u %t \"%r\" %s %b";

        /**
         * The set of month abbreviations for log messages.
         */
        public static final String MONTHS[] =
                {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

        /**
         * The directory in which log files are created.
         */
        public static String DIRECTORY = "repository/logs";

        /**
         * Gives the format of the date to be appended to the name of the access log file.
         */
        public static String FILE_FORMAT = "yyyy-MM-dd";

        /**
         * The prefix that is added to log file filenames.
         */
        public static String PREFIX = "http_access_";

        /**
         * The suffix that is added to log file filenames.
         */
        public static String SUFFIX = ".log";

        public static final String CONFIG_PATTERN = "access_log_pattern";

        public static final String CONFIG_DIRECTORY = "access_log_directory";

        public static final String CONFIG_PREFIX = "access_log_prefix";

        public static final String CONFIG_SUFFIX = "access_log_suffix";

        public static final String CONFIG_FILE_DATE_FORMAT = "access_log_file_date_format";

        public static final String CONFIG_ENABLE_LOGGING = "access_log_enable";

        public static String getLogPattern() {
            return AccessConfiguration.getInstance().getStringProperty(CONFIG_PATTERN, LOG_PATTERN);
        }

        public static String getSuffix() {
            return AccessConfiguration.getInstance().getStringProperty(CONFIG_SUFFIX, SUFFIX);
        }

        public static String getPrefix() {
            return AccessConfiguration.getInstance().getStringProperty(CONFIG_PREFIX, PREFIX);
        }

        public static String getFileDateFormat() {
            return AccessConfiguration.getInstance().getStringProperty(CONFIG_FILE_DATE_FORMAT, FILE_FORMAT);
        }

        public static String getDirectory() {
            return AccessConfiguration.getInstance().getStringProperty(CONFIG_DIRECTORY, DIRECTORY);
        }

    }