Beispiel #1
0
        public static NLogLoggingConfiguration UseMongoTarget(this NLogLoggingConfiguration nlogConf, IConfiguration configuration)
        {
            var targetOption = configuration.GetSection(nameof(NLogNoSqlTargetOptions)).Get <NLogNoSqlTargetOptions>();
            var mongoOption  = configuration.GetSection(nameof(LogStorageOptions)).Get <LogStorageOptions>();

            if (targetOption == null || mongoOption == null)
            {
                throw new NullReferenceException($"Cannot found {nameof(NLogNoSqlTargetOptions)} or {nameof(LogStorageOptions)} from configuration file!");
            }

            var mongoTarget = new MongoTarget()
            {
                Name             = targetOption.Name,
                CollectionName   = targetOption.CollectionName,
                ConnectionString = configuration["MongoDBConnection"],
                DatabaseName     = mongoOption.DatabaseName,
                IncludeDefaults  = true
            };

            nlogConf.AddTarget(mongoTarget);

            foreach (var r in targetOption.Rules)
            {
                var minlevel = LogLevel.FromString(r.MinLevel);
                var maxLevel = LogLevel.FromString(r.MaxLevel);
                nlogConf.AddRule(minlevel, maxLevel, mongoTarget, r.Logger);
            }

            return(nlogConf);
        }