#region Apache License // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to you 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. // #endregion using log4net.Core; namespace log4net.Repository.Hierarchy { /// /// Default implementation of /// /// /// /// This default implementation of the /// interface is used to create the default subclass /// of the object. /// /// /// Nicko Cadell /// Gert Driesen internal class DefaultLoggerFactory : ILoggerFactory { #region Internal Instance Constructors /// /// Default constructor /// /// /// /// Initializes a new instance of the class. /// /// internal DefaultLoggerFactory() { } #endregion Internal Instance Constructors #region Implementation of ILoggerFactory /// /// Create a new instance /// /// The that will own the . /// The name of the . /// The instance for the specified name. /// /// /// Create a new instance with the /// specified name. /// /// /// Called by the to create /// new named instances. /// /// /// If the is null then the root logger /// must be returned. /// /// public Logger CreateLogger(ILoggerRepository repository, string name) { if (name == null) { return new RootLogger(repository.LevelMap.LookupWithDefault(Level.Debug)); } return new LoggerImpl(name); } #endregion /// /// Default internal subclass of /// /// /// /// This subclass has no additional behavior over the /// class but does allow instances /// to be created. /// /// internal sealed class LoggerImpl : Logger { /// /// Construct a new Logger /// /// the name of the logger /// /// /// Initializes a new instance of the class /// with the specified name. /// /// internal LoggerImpl(string name) : base(name) { } } } }