private static IAppender GetAdoAppender(IConfigManagerHelper config)
        {
            var connectionString = config.GetConnectionString("OneHydraLog");
            if (string.IsNullOrEmpty(connectionString))
            {
                throw new Exception("A connection string to the log database is required.  Please add the connection string by the name OneHydraLog to the config and make sure the connection string points to a database with the expected OneSearchLog table.");
            }
            var adoAppender = new AdoNetAppender
            {
                Name = "ADONetAppender",
                BufferSize = 1,
                ConnectionType =
                    "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                ConnectionString = connectionString,
                CommandText =
                    "INSERT INTO [OneSearchLog] ([Date],[Thread],[Level],[Logger],[Message],[Exception], [MachineName]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @machineName)",
                CommandType = CommandType.Text
            };

            //<conversionPattern value="%property{log4net:HostName}" />

            var parameter = new AdoNetAppenderParameter { ParameterName = "@log_date", DbType = DbType.DateTime };
            var patternLayout = new PatternLayout { ConversionPattern = "%date{MM/dd/yyyy HH:mm:ss}" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@thread", DbType = DbType.String, Size = 255 };
            patternLayout = new PatternLayout { ConversionPattern = "%thread" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@log_level", DbType = DbType.String, Size = 50 };
            patternLayout = new PatternLayout { ConversionPattern = "%level" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@logger", DbType = DbType.String, Size = 255 };
            patternLayout = new PatternLayout { ConversionPattern = "%logger" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@message", DbType = DbType.String, Size = 200000000 };
            patternLayout = new PatternLayout { ConversionPattern = "%message" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@machineName", DbType = DbType.String, Size = 255 };
            patternLayout = new PatternLayout { ConversionPattern = "%property{machineName}" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter { ParameterName = "@exception", DbType = DbType.String, Size = 200000000 };
            patternLayout = new PatternLayout { ConversionPattern = "%property{fullException}" };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            //var exceptionLayout = new ExceptionLayout(){IgnoresException = true};
            //exceptionLayout.ActivateOptions();
            //parameter.Layout = new Layout2RawLayoutAdapter(exceptionLayout);
            adoAppender.AddParameter(parameter);

            adoAppender.ActivateOptions();
            return adoAppender;
        }
示例#2
0
        private static IAppender GetAdoAppender(IConfigManagerHelper config)
        {
            var connectionString = config.GetConnectionString("OneHydraLog");

            if (string.IsNullOrEmpty(connectionString))
            {
                throw new Exception("A connection string to the log database is required.  Please add the connection string by the name OneHydraLog to the config and make sure the connection string points to a database with the expected OneSearchLog table.");
            }
            var adoAppender = new AdoNetAppender
            {
                Name           = "ADONetAppender",
                BufferSize     = 1,
                ConnectionType =
                    "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                ConnectionString = connectionString,
                CommandText      =
                    "INSERT INTO [OneSearchLog] ([Date],[Thread],[Level],[Logger],[Message],[Exception], [MachineName]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @machineName)",
                CommandType = CommandType.Text
            };

            //<conversionPattern value="%property{log4net:HostName}" />

            var parameter = new AdoNetAppenderParameter {
                ParameterName = "@log_date", DbType = DbType.DateTime
            };
            var patternLayout = new PatternLayout {
                ConversionPattern = "%date{MM/dd/yyyy HH:mm:ss}"
            };

            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@thread", DbType = DbType.String, Size = 255
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%thread"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@log_level", DbType = DbType.String, Size = 50
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%level"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@logger", DbType = DbType.String, Size = 255
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%logger"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@message", DbType = DbType.String, Size = 200000000
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%message"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@machineName", DbType = DbType.String, Size = 255
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%property{machineName}"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            adoAppender.AddParameter(parameter);

            parameter = new AdoNetAppenderParameter {
                ParameterName = "@exception", DbType = DbType.String, Size = 200000000
            };
            patternLayout = new PatternLayout {
                ConversionPattern = "%property{fullException}"
            };
            patternLayout.ActivateOptions();
            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
            //var exceptionLayout = new ExceptionLayout(){IgnoresException = true};
            //exceptionLayout.ActivateOptions();
            //parameter.Layout = new Layout2RawLayoutAdapter(exceptionLayout);
            adoAppender.AddParameter(parameter);

            adoAppender.ActivateOptions();
            return(adoAppender);
        }