Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.sling.engine.impl.log;
 
 import java.io.File;
 import java.util.Map;
 
The RequestLoggerService is a factory component which gets configuration to register loggers for the RequestLogger.
 
         metatype = true,
         label = "%request.log.service.name",
         description = "%request.log.service.description",
         configurationFactory = true,
         policy = .)
     @Property(name = "service.description", value = "Factory for configuration based request/access loggers"),
     @Property(name = "service.vendor", value = "The Apache Software Foundation")
 })
 @Service(value = RequestLoggerService.class)
 public class RequestLoggerService {
 
     @Property
     public static final String PARAM_FORMAT = "request.log.service.format";
 
     @Property(value = "request.log")
     public static final String PARAM_OUTPUT = "request.log.service.output";
 
     @Property(intValue = 0, options = {
         @PropertyOption(name = "0", value = "Logger Name"), @PropertyOption(name = "1", value = "File Name"),
         @PropertyOption(name = "2", value = "RequestLog Service")
     })
     public static final String PARAM_OUTPUT_TYPE = "request.log.service.outputtype";
 
     @Property(boolValue = false)
     public static final String PARAM_ON_ENTRY = "request.log.service.onentry";
 
     private static final int OUTPUT_TYPE_LOGGER = 0;
 
     private static final int OUTPUT_TYPE_FILE = 1;
 
     private static final int OUTPUT_TYPE_CLASS = 2;
 
     private boolean onEntry;
 
     private CustomLogFormat logFormat;
 
     private RequestLog log;

    
Public default constructor for SCR integration
 
     public RequestLoggerService() {
     }
 
     RequestLoggerService(BundleContext bundleContextMap<StringObjectconfiguration) {
         this.setup(bundleContextconfiguration);
     }
 
     @Activate
     void setup(BundleContext bundleContextMap<StringObjectconfiguration) {
         // whether to log on request entry or request exit
         Object onEntryObject = configuration.get();
         this. = (onEntryObject instanceof Boolean) ? ((BooleanonEntryObject).booleanValue() : false;
 
         // shared or private CustomLogFormat
         Object format = configuration.get();
         if (format != null) {
             this. = new CustomLogFormat(format.toString());
        }
        // where to log to
        Object output = configuration.get();
        if (output != null) {
            Object outputTypeObject = configuration.get();
            int outputType = (outputTypeObject instanceof Number)
                    ? ((NumberoutputTypeObject).intValue()
                    : ;
            this. = this.getLog(bundleContextoutput.toString(), outputType);
        }
    }
    @Deactivate
    void shutdown() {
        if (this. != null) {
            this..close();
            this. = null;
        }
        this. = null;
    }
    void log(RequestLoggerRequest requestRequestLoggerResponse response) {
        if (this. != null && this. != null) {
            this..write(this..format(requestresponse));
        }
    }
    boolean isOnEntry() {
        return this.;
    }
    private RequestLog getLog(BundleContext bundleContextString outputint outputType) {
        switch (outputType) {
            case :
                // file logging
                try {
                    // ensure the path is absolute
                    File file = new File(output);
                    if (!file.isAbsolute()) {
                        final String home = bundleContext.getProperty("sling.home");
                        if (home != null) {
                            file = new File(homeoutput);
                        }
                        file = file.getAbsoluteFile();
                    }
                    return new FileRequestLog(file);
                } catch (IOException ioe) {
                    // TODO: log
                }
                break;
            case :
                // only try to use service if we have a bundle context
                if (bundleContext != null) {
                    return new RequestLogServiceFacade(bundleContextoutput);
                }
                break;
            case :
            default:
                return new LoggerRequestLog(output);
        }
        // fallback in case of issue or so...
        return null;
    }
New to GrepCode? Check out our FAQ X