Search in sources :

Example 1 with AccessLog

use of org.apache.catalina.AccessLog in project tomcat by apache.

the class ContainerBase method getAccessLog.

@Override
public AccessLog getAccessLog() {
    if (accessLogScanComplete) {
        return accessLog;
    }
    AccessLogAdapter adapter = null;
    Valve[] valves = getPipeline().getValves();
    for (Valve valve : valves) {
        if (valve instanceof AccessLog) {
            if (adapter == null) {
                adapter = new AccessLogAdapter((AccessLog) valve);
            } else {
                adapter.add((AccessLog) valve);
            }
        }
    }
    if (adapter != null) {
        accessLog = adapter;
    }
    accessLogScanComplete = true;
    return accessLog;
}
Also used : AccessLog(org.apache.catalina.AccessLog) Valve(org.apache.catalina.Valve)

Example 2 with AccessLog

use of org.apache.catalina.AccessLog in project tomcat by apache.

the class StandardEngine method logAccess.

/**
     * Override the default implementation. If no access log is defined for the
     * Engine, look for one in the Engine's default host and then the default
     * host's ROOT context. If still none is found, return the default NoOp
     * access log.
     */
@Override
public void logAccess(Request request, Response response, long time, boolean useDefault) {
    boolean logged = false;
    if (getAccessLog() != null) {
        accessLog.log(request, response, time);
        logged = true;
    }
    if (!logged && useDefault) {
        AccessLog newDefaultAccessLog = defaultAccessLog.get();
        if (newDefaultAccessLog == null) {
            // If we reached this point, this Engine can't have an AccessLog
            // Look in the defaultHost
            Host host = (Host) findChild(getDefaultHost());
            Context context = null;
            if (host != null && host.getState().isAvailable()) {
                newDefaultAccessLog = host.getAccessLog();
                if (newDefaultAccessLog != null) {
                    if (defaultAccessLog.compareAndSet(null, newDefaultAccessLog)) {
                        AccessLogListener l = new AccessLogListener(this, host, null);
                        l.install();
                    }
                } else {
                    // Try the ROOT context of default host
                    context = (Context) host.findChild("");
                    if (context != null && context.getState().isAvailable()) {
                        newDefaultAccessLog = context.getAccessLog();
                        if (newDefaultAccessLog != null) {
                            if (defaultAccessLog.compareAndSet(null, newDefaultAccessLog)) {
                                AccessLogListener l = new AccessLogListener(this, null, context);
                                l.install();
                            }
                        }
                    }
                }
            }
            if (newDefaultAccessLog == null) {
                newDefaultAccessLog = new NoopAccessLog();
                if (defaultAccessLog.compareAndSet(null, newDefaultAccessLog)) {
                    AccessLogListener l = new AccessLogListener(this, host, context);
                    l.install();
                }
            }
        }
        newDefaultAccessLog.log(request, response, time);
    }
}
Also used : AccessLog(org.apache.catalina.AccessLog) Context(org.apache.catalina.Context) Host(org.apache.catalina.Host)

Aggregations

AccessLog (org.apache.catalina.AccessLog)2 Context (org.apache.catalina.Context)1 Host (org.apache.catalina.Host)1 Valve (org.apache.catalina.Valve)1