1 /* 2 * Copyright the original author or authors. 3 * 4 * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.mozilla.org/MPL/MPL-1.1.html 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 import org.as2lib.core.BasicInterface; 18 import org.as2lib.env.log.Logger; 19 20 /** 21 * {@code LoggerRepository} is used to obtain {@code Logger} instances. 22 * 23 * <p>What logger instances are returned and how they are organized depends on the 24 * specific implementation. 25 * 26 * <p>There are simple implementations that just always returns instances of the 27 * same class that are configured with the passed-in name. 28 * 29 * <p>Other implementations organize the loggers in a more complex way like in a 30 * hierarchy. 31 * 32 * <p>All implementations have their strengths and weaknesses. In most cases you 33 * have to decide between performance and functionality, like ease of configuration. 34 * Take a look at the {@code org.as2lib.env.log.repository} package on what logger 35 * repositories are supported. 36 * 37 * <p>When working with logger repositories you normally store them in the log 38 * manager using the static {@link LogManager#setLoggerRepository} method. You can 39 * then use the static {@link LogManager#getLogger} method to obtain loggers from 40 * the set repository. 41 * 42 * @author Simon Wacker 43 */ 44 interface org.as2lib.env.log.LoggerRepository extends BasicInterface { 45 46 /** 47 * Returns a pre-configured logger for the passed-in {@code name}. 48 * 49 * <p>The implementation of this method can be simple and only return new logger 50 * instances or complex and structuring the loggers in a hierarchy. Thus invoking 51 * this method can be very fast or not that fast. So it is proposed to store the 52 * received logger by yourself. 53 * 54 * @param name the name of the logger to return 55 * @return a specific logger depending on the passed-in {@code name} 56 */ 57 public function getLogger(name:String):Logger; 58 59 }