/* * Copyright 2014 NAVER Corp. * * Licensed 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 com.navercorp.pinpoint.bootstrap.logging; import com.navercorp.pinpoint.common.util.logger.CommonLogger; import com.navercorp.pinpoint.common.util.logger.StdoutCommonLoggerFactory; /** * @author emeroad */ public final class PLoggerFactory { private static PLoggerBinder loggerBinder; public static void initialize(PLoggerBinder loggerBinder) { if (PLoggerFactory.loggerBinder == null) { PLoggerFactory.loggerBinder = loggerBinder; } else { final CommonLogger logger = StdoutCommonLoggerFactory.INSTANCE.getLogger(PLoggerFactory.class.getName()); logger.warn("loggerBinder is not null"); } } public static void unregister(PLoggerBinder loggerBinder) { // Limited to remove only the ones already registered // when writing a test case, logger register/unregister logic must be located in beforeClass and afterClass if (loggerBinder == PLoggerFactory.loggerBinder) { PLoggerFactory.loggerBinder = null; } } public static PLogger getLogger(String name) { if (loggerBinder == null) { // this prevents null exception: need to return Dummy until a Binder is assigned return DummyPLogger.INSTANCE; } return loggerBinder.getLogger(name); } public static PLogger getLogger(Class clazz) { if (clazz == null) { throw new NullPointerException("class must not be null"); } return getLogger(clazz.getName()); } }