Ejemplo n.º 1
0
 public static ILog GetCustomLogger(string loggerName, string category = null, bool additivity = false)
 {
     return(loggerContainer.GetOrAdd(loggerName, delegate(string name)
     {
         RollingFileAppender newAppender = null;
         ReadParamAppender appender = null;
         if (appenderContainer.ContainsKey(loggerName))
         {
             appender = appenderContainer[loggerName];
             newAppender = GetNewFileApender(loggerName, string.IsNullOrEmpty(appender.File) ? GetFile(category, loggerName) : appender.File, appender.MaxSizeRollBackups,
                                             appender.AppendToFile, true, appender.MaximumFileSize, RollingFileAppender.RollingMode.Composite, appender.DatePattern, appender.LayoutPattern);
         }
         else
         {
             newAppender = GetNewFileApender(loggerName, GetFile(category, loggerName), MAX_SIZE_ROLL_BACKUPS, true, true, MAXIMUM_FILE_SIZE, RollingFileAppender.RollingMode.Composite,
                                             DATE_PATTERN, LAYOUT_PATTERN);
         }
         log4net.Repository.Hierarchy.Hierarchy repository = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
         Logger logger = repository.LoggerFactory.CreateLogger(repository, loggerName);
         logger.Hierarchy = repository;
         logger.Parent = repository.Root;
         logger.Level = GetLoggerLevel(appender == null ? LEVEL : appender.Level);
         logger.Additivity = additivity;
         logger.AddAppender(newAppender);
         logger.Repository.Configured = true;
         return new LogImpl(logger);
     }));
 }