Package com.googlecode.psiprobe.tools.logging.commons

Source Code of com.googlecode.psiprobe.tools.logging.commons.LoggerAccessorVisitor

/*
* Licensed under the GPL License.  You may not use this file except in
* compliance with the License.  You may obtain a copy of the License at
*
*     http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
package com.googlecode.psiprobe.tools.logging.commons;

import com.googlecode.psiprobe.tools.Instruments;
import com.googlecode.psiprobe.tools.logging.DefaultAccessor;
import com.googlecode.psiprobe.tools.logging.jdk.Jdk14LoggerAccessor;
import com.googlecode.psiprobe.tools.logging.log4j.Log4JLoggerAccessor;

/**
*
* @author Mark Lewis
*/
public abstract class LoggerAccessorVisitor extends DefaultAccessor {

    public void visit() {
        Object logger = Instruments.getField(getTarget(), "logger");
        if (logger != null) {
            if ("org.apache.log4j.Logger".equals(logger.getClass().getName())) {
                while (logger != null) {
                    Log4JLoggerAccessor accessor = new Log4JLoggerAccessor();
                    accessor.setTarget(logger);
                    accessor.setApplication(getApplication());
                    accessor.setContext(true);
                    visit(accessor);
                    logger = invokeMethod(logger, "getParent", null, null);
                }
            } else if ("java.util.logging.Logger".equals(logger.getClass().getName())) {
                while (logger != null) {
                    Jdk14LoggerAccessor accessor = new Jdk14LoggerAccessor();
                    accessor.setTarget(logger);
                    accessor.setApplication(getApplication());
                    accessor.setContext(true);
                    visit(accessor);
                    logger = invokeMethod(logger, "getParent", null, null);
                }
            }
        }
    }

    public abstract void visit(Log4JLoggerAccessor accessor);
    public abstract void visit(Jdk14LoggerAccessor accessor);

}
TOP

Related Classes of com.googlecode.psiprobe.tools.logging.commons.LoggerAccessorVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.