예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="loggerConfiguration"></param>
        /// <param name="clusterName"></param>
        /// <param name="databaseName"></param>
        /// <param name="tableName"></param>
        /// <param name="restrictedToMinimumLevel"></param>
        /// <param name="batchPostingLimit"></param>
        /// <param name="period"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException"></exception>
        public static LoggerConfiguration RethinkDB(
            this LoggerSinkConfiguration loggerConfiguration,
            string clusterName,
            string databaseName = null,
            string tableName    = null,
            LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
            int batchPostingLimit = RethinkDBSink.DefaultBatchPostingLimit,
            TimeSpan?period       = null)
        {
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }
            if (clusterName == null)
            {
                throw new ArgumentNullException("clusterName");
            }

            connectionFactory = ConfigurationAssembler.CreateConnectionFactory(clusterName);

            var rethinkDbSink = new RethinkDBSink(
                connectionFactory,
                databaseName ?? RethinkDBSink.DefaultDbName,
                tableName ?? RethinkDBSink.DefaultTableName,
                batchPostingLimit,
                period ?? RethinkDBSink.DefaultPeriod
                );

            return(loggerConfiguration.Sink(rethinkDbSink, restrictedToMinimumLevel));
        }
        static RethinkDBClient()
        {
            //by default convert all enums to strings (or else config assembler will default to int32).
            RethinkDb.Newtonsoft.Configuration.ConfigurationAssembler.DefaultJsonSerializerSettings.Converters.Add(new StringEnumConverter());

            DefaultConnectionCache = new AsyncLazy <IConnection>(async() =>
            {
                return(await ConfigurationAssembler.CreateConnectionFactory(RethinkDBClusterName).GetAsync());
            });
        }
예제 #3
0
 static NHasFieldsTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #4
0
 static NGroupingTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #5
0
 static NDatabaseTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #6
0
 static NManyObjectTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #7
0
 static NMultiTableTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #8
0
 static NSingleObjectTest()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #9
0
 static NNamedValueDictionaryTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }
예제 #10
0
 static NRealtimePushTests()
 {
     ConnectionFactory = ConfigurationAssembler.CreateConnectionFactory("testCluster");
 }