1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * See LICENSE.txt included in this distribution for the specific 9 * language governing permissions and limitations under the License. 10 * 11 * When distributing Covered Code, include this CDDL HEADER in each 12 * file and include the License file at LICENSE.txt. 13 * If applicable, add the following below this CDDL HEADER, with the 14 * fields enclosed by brackets "[]" replaced with your own identifying 15 * information: Portions Copyright [yyyy] [name of copyright owner] 16 * 17 * CDDL HEADER END 18 */ 19 20 /* 21 * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. 22 */ 23 package org.opengrok.indexer.logger; 24 25 import java.util.logging.Logger; 26 27 /** 28 * Factory for creating {@link Logger} instances. 29 */ 30 public class LoggerFactory { 31 32 private static LoggerFactoryBridge loggerFactoryBridge = new PackageBasedLoggerFactoryBridge(); 33 LoggerFactory()34 private LoggerFactory() { 35 } 36 37 /** 38 * Returns {@link Logger} for given class. 39 * @param clazz class 40 * @return logger for given class 41 */ getLogger(Class<?> clazz)42 public static Logger getLogger(Class<?> clazz) { 43 return loggerFactoryBridge.getLogger(clazz); 44 } 45 46 /** 47 * Injecting bridge to use different logger factory (e.g. in tests). 48 * Default access forces to use this method only in the same package. 49 * @param loggerFactoryBridge bridge implementation 50 */ setLoggerFactoryBridge(LoggerFactoryBridge loggerFactoryBridge)51 static void setLoggerFactoryBridge(LoggerFactoryBridge loggerFactoryBridge) { 52 LoggerFactory.loggerFactoryBridge = loggerFactoryBridge; 53 } 54 } 55