NLog.LogFactory.GetLogger C# (CSharp) Method

GetLogger() private method

private GetLogger ( LoggerCacheKey cacheKey ) : Logger
cacheKey LoggerCacheKey
return Logger
        private Logger GetLogger(LoggerCacheKey cacheKey)
        {
            lock (this)
            {
                WeakReference l;

                if (this.loggerCache.TryGetValue(cacheKey, out l))
                {
                    Logger existingLogger = l.Target as Logger;
                    if (existingLogger != null)
                    {
                        // logger in the cache and still referenced
                        return existingLogger;
                    }
                }

                Logger newLogger;

                if (cacheKey.ConcreteType != null && cacheKey.ConcreteType != typeof(Logger))
                {
                    newLogger = (Logger)FactoryHelper.CreateInstance(cacheKey.ConcreteType);
                }
                else
                {
                    newLogger = new Logger();
                }

                if (cacheKey.ConcreteType != null)
                {
                    newLogger.Initialize(cacheKey.Name, this.GetConfigurationForLogger(cacheKey.Name, this.Configuration), this);
                }

                this.loggerCache[cacheKey] = new WeakReference(newLogger);
                return newLogger;
            }
        }

Same methods

LogFactory::GetLogger ( string name ) : Logger
LogFactory::GetLogger ( string name, Type loggerType ) : Logger

Usage Example

Example #1
1
 static void Main(string[] args)
 {
     var config = new NLog.Config.LoggingConfiguration();
     using (var fluentdTarget = new NLog.Targets.Fluentd())
     {
         fluentdTarget.Layout = new NLog.Layouts.SimpleLayout("${longdate}|${level}|${callsite}|${logger}|${message}");
         config.AddTarget("fluentd", fluentdTarget);
         config.LoggingRules.Add(new NLog.Config.LoggingRule("demo", LogLevel.Debug, fluentdTarget));
         var loggerFactory = new LogFactory(config);
         var logger = loggerFactory.GetLogger("demo");
         logger.Info("Hello World!");
     }
 }
All Usage Examples Of NLog.LogFactory::GetLogger