public DefaultLogger(string name,
                             LoggerLevels levels,
                             LoggerFilter filter,
                             Target target,
                             ProfilerBuilder profiler)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            this.levels        = levels ?? LoggerLevels.All;
            this.filter        = filter ?? LoggerFilter.All;
            this.name          = name;
            this.target        = target;
            this.target.Logger = this;

            if (profiler == null || profiler.Enabled)
            {
                this.profiler = new DefaultProfiler(this);
            }
            else
            {
                this.profiler = Profiler.Null;
            }
        }
 public static Logger Create(Target target,
                             LoggerFilter filter = null) {
     return new DefaultLogger(string.Empty, LoggerLevels.All, filter, target, null);
 }