Beispiel #1
0
        private DatabaseParameterInfo GetParameter(string name, string layout)
        {
            var paramDB = new DatabaseParameterInfo
            {
                Name   = name,
                Layout = layout
            };

            return(paramDB);
        }
Beispiel #2
0
        // TODO: it seems like it cant do console and file logging at the same time?
        public static void LogInit()
        {
            // TODO: move this config somewhere better and pass in the params
            if (ConfigurationManager.AppSettings["LogDatabase"].Equals("true", StringComparison.OrdinalIgnoreCase))
            {
                DatabaseTarget        target = new DatabaseTarget();
                DatabaseParameterInfo param;

                target.ConnectionString = ConfigurationManager.ConnectionStrings["Log"].ConnectionString;
                target.CommandText      = "insert into Log(timestamp,loglevel,logger,message) values(@time_stamp, @level, @logger, @message);";

                param        = new DatabaseParameterInfo();
                param.Name   = "@time_stamp";
                param.Layout = "${date}";
                target.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@level";
                param.Layout = "${level}";
                target.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@logger";
                param.Layout = "${logger}";
                target.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@message";
                param.Layout = "${message}";
                target.Parameters.Add(param);

                NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target);
            }

            if (ConfigurationManager.AppSettings["LogConsole"].Equals("true", StringComparison.OrdinalIgnoreCase))
            {
                var console = new ColoredConsoleTarget();
                console.Layout = "${logger} \t ${message}";
                NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(console, LogLevel.Trace);
            }

            if (ConfigurationManager.AppSettings["LogFile"].Equals("true", StringComparison.OrdinalIgnoreCase))
            {
                var file = new FileTarget();
                file.FileName = "testlog.log";
                file.Layout   = "${logger} \t ${message}";
                NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(file, LogLevel.Trace);
            }
        }
Beispiel #3
0
        public void AddDatabaseTarget(string connectionString, string logLevel, string targetName)
        {
            LogLevel              loggingLevel = LogLevel.Off;
            DatabaseTarget        target       = new DatabaseTarget(targetName);
            DatabaseParameterInfo param;

            target.DBProvider       = "mssql";
            target.ConnectionString = connectionString;
            target.CommandText      = "insert into GwcLogs(LogDate,Level,Logger,Method,Message,Exception) values(@time_stamp, @level, @logger, @method,@message,@exception);";

            param        = new DatabaseParameterInfo();
            param.Name   = "@time_stamp";
            param.Layout = "${date}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@level";
            param.Layout = "${level}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@logger";
            param.Layout = "${callsite:className=true:includeSourcePath=false:methodName=false}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@method";
            param.Layout = "${callsite:className=false:includeSourcePath=false:methodName=true}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@message";
            param.Layout = "${message}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@exception";
            param.Layout = "${exception:format=Message,StackTrace,Data}";
            target.Parameters.Add(param);

            ConfigureLogger(targetName, target, logLevel);
        }
Beispiel #4
0
        static void nlog_to_db()
        {
            ensure_db_exists();

            DatabaseTarget        target = new DatabaseTarget();
            DatabaseParameterInfo param;

            // just in case issues with db.
            LogManager.ThrowExceptions = true;

//            target.DBProvider = "System.Data.SQLite";
            target.DBProvider = "System.Data.SQLite.SQLiteConnection, System.Data.SQLite";
            //target.ConnectionString = "Data Source=${basedir}\\Log.db3;Version=3;";
            target.ConnectionString = "Data Source=Log.db3;Version=3;";
            target.CommandType      = CommandType.Text;
            target.CommandText      = "insert into Log(time_stamp,level,logger,message) values(@time_stamp, @level, @logger, @message);";

            param        = new DatabaseParameterInfo();
            param.Name   = "@time_stamp";
            param.Layout = "${date}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@level";
            param.Layout = "${level}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@logger";
            param.Layout = "${logger}";
            target.Parameters.Add(param);

            param        = new DatabaseParameterInfo();
            param.Name   = "@message";
            param.Layout = "${message}";
            target.Parameters.Add(param);

            NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target, LogLevel.Debug);
        }
Beispiel #5
0
    static void Main(string[] args)
    {
        DatabaseTarget        target = new DatabaseTarget();
        DatabaseParameterInfo param;

        target.DBProvider  = "mssql";
        target.DBHost      = ".";
        target.DBUserName  = "******";
        target.DBPassword  = "******";
        target.DBDatabase  = "databasename";
        target.CommandText = "insert into LogTable(time_stamp,level,logger,message) values(@time_stamp, @level, @logger, @message);";

        param        = new DatabaseParameterInfo();
        param.Name   = "@time_stamp";
        param.Layout = "${date}";
        target.Parameters.Add(param);

        param        = new DatabaseParameterInfo();
        param.Name   = "@level";
        param.Layout = "${level}";
        target.Parameters.Add(param);

        param        = new DatabaseParameterInfo();
        param.Name   = "@logger";
        param.Layout = "${logger}";
        target.Parameters.Add(param);

        param        = new DatabaseParameterInfo();
        param.Name   = "@message";
        param.Layout = "${message}";
        target.Parameters.Add(param);

        NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target, LogLevel.Debug);

        Logger logger = LogManager.GetLogger("Example");

        logger.Debug("log message");
    }
Beispiel #6
0
        private void AddParameter(DatabaseTarget dbTarget, string parameterName, string layout)
        {
            var par = new DatabaseParameterInfo(parameterName, new NLog.Layouts.SimpleLayout(layout));

            dbTarget.Parameters.Add(par);
        }
Beispiel #7
0
        public static void ConfigureLogging(string connectionString)
        {
            LogManager.ThrowExceptions = true;
            // Step 1. Create configuration object
            var config = new LoggingConfiguration();

            // Step 2. Create targets and add them to the configuration
            var databaseTarget = new DatabaseTarget
            {
                CommandType      = CommandType.Text,
                ConnectionString = connectionString,
                DBProvider       = "Mono.Data.Sqlite.SqliteConnection, Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756",
                Name             = "database",
            };

            var messageParam = new DatabaseParameterInfo {
                Name = "@Message", Layout = "${message}"
            };
            var callsiteParam = new DatabaseParameterInfo {
                Name = "@Callsite", Layout = "${callsite}"
            };
            var levelParam = new DatabaseParameterInfo {
                Name = "@Level", Layout = "${level}"
            };
            var dateParam = new DatabaseParameterInfo {
                Name = "@Date", Layout = "${date}"
            };
            var loggerParam = new DatabaseParameterInfo {
                Name = "@Logger", Layout = "${logger}"
            };
            var exceptionParam = new DatabaseParameterInfo {
                Name = "@Exception", Layout = "${exception:tostring}"
            };

            databaseTarget.Parameters.Add(messageParam);
            databaseTarget.Parameters.Add(callsiteParam);
            databaseTarget.Parameters.Add(levelParam);
            databaseTarget.Parameters.Add(dateParam);
            databaseTarget.Parameters.Add(loggerParam);
            databaseTarget.Parameters.Add(exceptionParam);

            databaseTarget.CommandText = "INSERT INTO Logs (Date,Level,Logger, Message, Callsite, Exception) VALUES(@Date,@Level,@Logger, @Message, @Callsite, @Exception);";
            config.AddTarget("database", databaseTarget);

            // Step 4. Define rules
            var rule1 = new LoggingRule("*", LogLevel.Debug, databaseTarget);

            config.LoggingRules.Add(rule1);
            var currentPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath) ?? string.Empty, "logs/${shortdate}.log");

            var fileTarget = new FileTarget
            {
                Name       = "file",
                FileName   = currentPath,
                Layout     = "${date} ${logger} ${level}: ${message} ${exception:tostring}",
                CreateDirs = true
            };

            config.AddTarget(fileTarget);
            var rule2 = new LoggingRule("*", LogLevel.Debug, fileTarget);

            config.LoggingRules.Add(rule2);

            // Step 5. Activate the configuration
            LogManager.Configuration = config;
        }
Beispiel #8
0
        /// <summary>
        /// Sets the config.
        /// </summary>
        /// <param name="connectionstring">The connectionstring.</param>
        /// <param name="console">The console.</param>
        /// <param name="file">The file.</param>
        /// <param name="database">The database.</param>
        /// <returns></returns>
        public static LoggingConfiguration SetConfig(string connectionstring, bool?console = null, bool?file = null, bool?database = null)
        {
            // Step 1. Create configuration object
            var config = new LoggingConfiguration();

            #region Console

            if (console.HasValue ? console.Value :  true)
            {
                // Step 2. Create targets and add them to the configuration
                var consoleTarget = new TraceTarget();
                config.AddTarget("console", consoleTarget);

                // Step 3. Set target properties
                consoleTarget.Layout = string.Format("${{date:format=HH\\:mm\\:ss.fff}} ${{level}} ${{event-context:item={0}}} ${{event-context:item={1}}} ${{message}} ${{event-context:item={2}}} ${{event-context:item={3}}} ${{event-context:item={4}}} ${{event-context:item={5}}} ${{event-context:item={6}}} ${{event-context:item={7}}} ${{event-context:item={8}}}", NLogExceptionType, NLogExceptionId, NLogApplication, NLogAppVersion, NLogVerb, NLogRequestUrl, NLogJSonSession, NLogJsonRequest, NLogCorrId);

                // Step 4. Define rules

                LogLevel level = LogLevel.Trace;

                var rule1 = new LoggingRule("*", level, consoleTarget);
                config.LoggingRules.Add(rule1);
            }

            #endregion

            #region File

            if (file.HasValue ? file.Value :  !console.GetValueOrDefault())
            {
                var fileTarget       = new FileTarget();
                var asyncwrapperFile = new NLog.Targets.Wrappers.AsyncTargetWrapper(fileTarget);
                //            fileTarget.FileName = string.Format("${{basedir}}\\{{$event-context:item={0}}}\\${{shortdate}}_${{level}}.log", NLogApplication);
                fileTarget.FileName = string.Format("{0}/${{shortdate}}_${{level}}.log", "${basedir}/log");
                fileTarget.Layout   = string.Format("\n${{date:format=HH\\:mm\\:ss}} ${{level}} ${{event-context:item={0}}} ${{event-context:item={1}}} ${{event-context:item={2}}}\n${{message}}\n${{event-context:item={3}}} ${{event-context:item={4}}} ${{event-context:item={5}}} ${{event-context:item={6}}} ${{event-context:item={7}}} ${{event-context:item={8}}}", NLogExceptionType, NLogExceptionId, NLogApplication, NLogAppVersion, NLogVerb, NLogRequestUrl, NLogJsonRequest, NLogJSonSession, NLogCorrId);
                config.AddTarget("file", asyncwrapperFile);

                LogLevel level = LogLevel.Error;
                var      rule2 = new LoggingRule("*", level, asyncwrapperFile);
                // filter na vstupne parametre
                rule2.Filters.Add(new ConditionBasedFilter {
                    Condition = "equals('${logger}','StringMapTypeDeserializer')", Action = FilterResult.Ignore
                });
                config.LoggingRules.Add(rule2);
            }

            #endregion

            #region Database

            if (database.HasValue ? database.Value : true)
            {
                var databaseTarget = new DatabaseTarget();
                //  NLog.Targets.Wrappers.AsyncTargetWrapper asyncwrapperDb = new NLog.Targets.Wrappers.AsyncTargetWrapper(databaseTarget);
                databaseTarget.ConnectionString = connectionstring;
                databaseTarget.CommandText      = "set context_info 0x50006F00730074004400650070006C006F007900;INSERT INTO [reg].[D_Log]([Application],[Version],[machine],[Log_Level],[Logger],[Verb],[RequestUrl],[JsonSession],[JsonRequest],[Message],[LastSoapRequestMessage],[LastSoapResponseMessage],[ErrorType],[ErrorIdentifier],[CorrId]) VALUES (@Application,@Version,@machine,@Log_Level,@Logger,@Verb,@RequestUrl,@JsonSession,@JsonRequest,@Message,@LastSoapRequestMessage,@LastSoapResponseMessage,@ErrorType,@ErrorIdentifier,@CorrId)";
                databaseTarget.KeepConnection   = false;
                databaseTarget.Name             = "DLog";

                var param = new DatabaseParameterInfo();
                param.Name   = "@Application";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogApplication);
                databaseTarget.Parameters.Add(param);

                /*param = new DatabaseParameterInfo();
                 * param.Name = "@Time_Stamp";
                 * param.Layout = "${date}";
                 * databaseTarget.Parameters.Add(param);
                 */
                param        = new DatabaseParameterInfo();
                param.Name   = "@Log_Level";
                param.Layout = "${level}";
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Logger";
                param.Layout = "${logger}";
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Verb";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogVerb);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@RequestUrl";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogRequestUrl);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@JsonSession";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogJSonSession);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@JsonRequest";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogJsonRequest);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Version";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogAppVersion);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@LastSoapRequestMessage";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogLastSoapRequestMessage);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@LastSoapResponseMessage";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogLastSoapResponseMessage);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@CorrId";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogCorrId);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@machine";
                param.Layout = "${machinename}";
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Message";
                param.Layout = "${message}";
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@ErrorType";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogExceptionType);
                databaseTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@ErrorIdentifier";
                param.Layout = string.Format("${{event-context:item={0}}}", NLogExceptionId);
                databaseTarget.Parameters.Add(param);

                //config.AddTarget("database", asyncwrapperDb);
                config.AddTarget("database", databaseTarget);

                LogLevel level  = LogLevel.Warn;
                var      ruleDb = new LoggingRule("*", level, databaseTarget);
                // filter na vstupne parametre
                ruleDb.Filters.Add(new ConditionBasedFilter {
                    Condition = "equals('${logger}','StringMapTypeDeserializer')", Action = FilterResult.Ignore
                });

                // ruleDb.Filters.Add(new NLog.Filters.Filter());
                //var ruleDb = new LoggingRule("*", LogLevel.Error, asyncwrapperDb);
                config.LoggingRules.Add(ruleDb);
            }

            #endregion

            #region GrayLog

            /*
             * var greyLogHost = WebConfigurationManager.AppSettings["GreyLogHost"];
             * if (!string.IsNullOrEmpty(greyLogHost))
             * {
             *  var greyLogHostParsed = greyLogHost.Split(':');
             *  if (greyLogHostParsed.Length >= 3 && int.TryParse(greyLogHostParsed[2], out int remotePort))
             *  {
             *      var assembly = System.Reflection.Assembly.Load("EasyGelf.NLog");
             *      ConfigurationItemFactory.Default.RegisterItemsFromAssembly(assembly);
             *
             *      EasyGelf.NLog.GelfTargetBase gelfTarget = null;
             *      var remoteAddress = greyLogHostParsed[0];
             *      var transportType = greyLogHostParsed[1];
             *      LogLevel level = (greyLogHostParsed.Length > 3 ? string.IsNullOrEmpty(greyLogHostParsed[3]) : true) ? LogLevel.Trace : LogLevel.FromString(greyLogHostParsed[3]);
             *
             *      if (transportType == "tcp")
             *      {
             *          gelfTarget = new EasyGelf.NLog.GelfTcpTarget()
             *          {
             *              Facility = WebEasNLogLogger.Application,
             *              RemoteAddress = remoteAddress,
             *              RemotePort = remotePort
             *          };
             *      }
             *
             *      if (transportType == "udp")
             *      {
             *          gelfTarget = new EasyGelf.NLog.GelfUdpTarget()
             *          {
             *              Facility = WebEasNLogLogger.Application,
             *              RemoteAddress = remoteAddress,
             *              RemotePort = remotePort
             *          };
             *      }
             *
             *      if (gelfTarget != null)
             *      {
             *          config.AddTarget("gelfTarget", gelfTarget);
             *          gelfTarget.Layout = string.Format("${{date:format=HH\\:MM\\:ss}} ${{level}} ${{event-context:item={0}}} ${{event-context:item={1}}} ${{message}} ${{event-context:item={2}}} ${{event-context:item={3}}} ${{event-context:item={4}}} ${{event-context:item={5}}} ${{event-context:item={6}}} ${{event-context:item={7}}} ${{event-context:item={8}}}", NLogExceptionType, NLogExceptionId, NLogApplication, NLogAppVersion, NLogVerb, NLogRequestUrl, NLogJSonSession, NLogJsonRequest, NLogCorrId);
             *          //gelfTarget.Layout = "${message}";
             *          config.LoggingRules.Add(new LoggingRule("*", level, gelfTarget));
             *      }
             *  }
             * }
             */
            #endregion
            // Step 5. Activate the configuration
            LogManager.Configuration   = config;
            LogManager.ThrowExceptions = true;
            LogManager.ReconfigExistingLoggers();

            return(config);
        }
Beispiel #9
0
 public static string Name(this DatabaseParameterInfo parameter)
 {
     return(ParamRegex.Match(parameter.Name).Groups["name"].Value);
 }
Beispiel #10
0
 public static bool Nullable(this DatabaseParameterInfo parameter)
 {
     return(ParamRegex.Match(parameter.Name).Groups["null"].Success);
 }
Beispiel #11
0
 public static string FullName(this DatabaseParameterInfo parameter)
 {
     return(string.Format("{0}{1}", parameter.Prefix(), parameter.Name()));
 }
Beispiel #12
0
        public static void InitSamayLogger(string samayDB_ConnectionString)
        {
            //initialize the logger to log using NLog to SQLite Database
            try
            {
                InitConversions();
                DatabaseParameterInfo param;
                dbTarget.KeepConnection   = false;
                dbTarget.UseTransactions  = false;
                dbTarget.DBProvider       = "System.Data.SQLite.SQLiteConnection, System.Data.SQLite";
                dbTarget.ConnectionString = samayDB_ConnectionString;

                dbTarget.CommandText = "INSERT into LOGS (TimeStamp, Level, Message, JobName, TaskName) values(@Timestamp, @Loglevel,@Message, @JobName, @TaskName)";

                param      = new DatabaseParameterInfo();
                param.Name = "@Timestamp";
                //param.Layout = "${longdate}";
                // param.Layout = new NLog.LayoutRenderers.DateLayoutRenderer();//
                param.Layout = "${event-context:item=timestamp}";
                dbTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Loglevel";
                param.Layout = "${level}";
                dbTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@Message";
                param.Layout = "${message}";
                dbTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@JobName";
                param.Layout = "${event-context:item=jobname}";
                dbTarget.Parameters.Add(param);

                param        = new DatabaseParameterInfo();
                param.Name   = "@TaskName";
                param.Layout = "${event-context:item=taskname}";
                dbTarget.Parameters.Add(param);

#if DEBUG
                config.AddTarget("Console", consoleTarget);
                consoleTarget.Layout = "${date:format=HH\\:mm\\:ss} ${logger}   ${message}";
#endif

                fileTarget.Layout   = "${longdate} ${logger} ${message}";
                fileTarget.FileName = @"c:\samay\logs\logfile.txt";
                //fileTarget.ArchiveFileName = @"c:\samay\archives\log.{#}.txt";
                //fileTarget.ArchiveEvery = FileArchivePeriod.Day;
                //fileTarget.ArchiveNumbering = ArchiveNumberingMode.Date;
                //fileTarget.MaxArchiveFiles = 7;
                //fileTarget.ConcurrentWrites = true;
                //fileTarget.KeepFileOpen = false;

                config.AddTarget("file", fileTarget);

                fileTarget.Layout           = "${longdate} ${logger} ${message}";
                fileTarget.FileName         = "${basedir}/log.txt";
                fileTarget.ArchiveFileName  = "${basedir}/archives/log.{#}.txt";
                fileTarget.ArchiveEvery     = FileArchivePeriod.Day;
                fileTarget.ArchiveNumbering = ArchiveNumberingMode.Date;
                fileTarget.MaxArchiveFiles  = 7;
                fileTarget.ConcurrentWrites = true;
                fileTarget.KeepFileOpen     = false;

                config.AddTarget("file", fileTarget);
                config.AddTarget("dbTarget", dbTarget);

                config.AddTarget("file", fileTarget);

                config.AddTarget("dbTarget", dbTarget);
            }
            catch
            {
            }
            finally
            {
                LogManager.Configuration = config;
            }
        }
        public static void ConfigureNLog()
        {
            // Step 1. Create configuration object
            var config = new LoggingConfiguration();

            // Step 2. Create targets and add them to the configuration
            var dbTarget = new DatabaseTarget();

            config.AddTarget("Database", dbTarget);

            dbTarget.ConnectionString = cs.GetDbConnStr();
            dbTarget.CommandType      = CommandType.StoredProcedure;
            dbTarget.CommandText      = "[dbo].[uspNLogInsert]";
            dbTarget.Name             = "db";
            var machineName = new DatabaseParameterInfo
            {
                Name   = "@machineName",
                Layout = "${machinename}"
            };
            var siteName = new DatabaseParameterInfo
            {
                Name   = "@siteName",
                Layout = "${iis-site-name}"
            };
            var logged = new DatabaseParameterInfo
            {
                Name   = "@logged",
                Layout = "${date}"
            };
            var level = new DatabaseParameterInfo
            {
                Name   = "@level",
                Layout = "${level}"
            };
            var userName = new DatabaseParameterInfo
            {
                Name   = "@username",
                Layout = "${aspnet-user-identity}"
            };
            var message = new DatabaseParameterInfo
            {
                Name   = "@message",
                Layout = "${message}"
            };
            var logger = new DatabaseParameterInfo
            {
                Name   = "@logger",
                Layout = "${logger}"
            };
            var properties = new DatabaseParameterInfo
            {
                Name   = "@properties",
                Layout = "${all-event-properties:separator=|}"
            };
            var serverName = new DatabaseParameterInfo
            {
                Name   = "@serverName",
                Layout = "${aspnet-request:serverVariable=SERVER_NAME}"
            };
            var port = new DatabaseParameterInfo
            {
                Name   = "@port",
                Layout = "${aspnet-request:serverVariable=SERVER_PORT}"
            };
            var url = new DatabaseParameterInfo
            {
                Name   = "@url",
                Layout = "${aspnet-request:serverVariable=HTTP_URL}"
            };
            var https = new DatabaseParameterInfo
            {
                Name   = "@https",
                Layout = "${when:inner=1:when='${aspnet-request:serverVariable=HTTPS}' == 'on'}${when:inner=0:when='${aspnet-request:serverVariable=HTTPS}' != 'on'}"
            };
            var serverAddress = new DatabaseParameterInfo
            {
                Name   = "@serverAddress",
                Layout = ""
            };
            var remoteAddress = new DatabaseParameterInfo
            {
                Name   = "@remoteAddress",
                Layout = "${aspnet-request:serverVariable=REMOTE_ADDR}:${aspnet-request:serverVariable=REMOTE_PORT}"
            };
            var callSite = new DatabaseParameterInfo
            {
                Name   = "@callSite",
                Layout = "${callsite}"
            };
            var exception = new DatabaseParameterInfo
            {
                Name   = "@exception",
                Layout = "${exception:tostring}"
            };

            dbTarget.Parameters.Add(machineName);
            dbTarget.Parameters.Add(siteName);
            dbTarget.Parameters.Add(logged);
            dbTarget.Parameters.Add(level);
            dbTarget.Parameters.Add(userName);
            dbTarget.Parameters.Add(message);
            dbTarget.Parameters.Add(logger);
            dbTarget.Parameters.Add(properties);
            dbTarget.Parameters.Add(serverName);
            dbTarget.Parameters.Add(port);
            dbTarget.Parameters.Add(url);
            dbTarget.Parameters.Add(https);
            dbTarget.Parameters.Add(serverAddress);
            dbTarget.Parameters.Add(remoteAddress);
            dbTarget.Parameters.Add(callSite);
            dbTarget.Parameters.Add(exception);

            // Step 4. Define rules
            var nLogRule = new LoggingRule("*", LogLevel.Debug, LogLevel.Fatal, dbTarget);

            config.LoggingRules.Add(nLogRule);

            // Step 5. Activate the configuration
            LogManager.Configuration = config;
        }
Beispiel #14
0
 public static bool Nullable(this DatabaseParameterInfo parameter) => ParamRegex.Match(parameter.Name).Groups["Null"].Success;
Beispiel #15
0
 public static string FullName(this DatabaseParameterInfo parameter) => $"{parameter.Prefix()}{parameter.Name()}";
Beispiel #16
0
 public static string Name(this DatabaseParameterInfo parameter) => ParamRegex.Match(parameter.Name).Groups["Name"].Value;