/// <summary>
        /// Adds a sink that writes log events as rolling files for consumption in a Splunk instance.
        /// </summary>
        /// <param name="loggerConfiguration">The logger configuration.</param>
        /// <param name="splunkConnectionInfoInfo"></param>
        /// <param name="batchSizeLimit"></param>
        /// <param name="defaultPeriod"></param>
        /// <param name="restrictedToMinimumLevel">The minimum log event level required in order to write an event to the sink.</param>
        /// <param name="formatProvider">Supplies culture-specific formatting information, or null.</param>
        /// <returns>Logger configuration, allowing configuration to continue.</returns>
        /// <exception cref="ArgumentNullException">A required parameter is null.</exception>
        public static LoggerConfiguration Splunk(
            this LoggerSinkConfiguration loggerConfiguration,
            SplunkConnectionInfo splunkConnectionInfoInfo,
            int batchSizeLimit,
            TimeSpan?defaultPeriod,
            LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
            IFormatProvider formatProvider         = null)
        {
            var defaultedPeriod = defaultPeriod ?? SplunkSink.DefaultPeriod;

            return(loggerConfiguration.Sink(new SplunkSink(batchSizeLimit, defaultedPeriod, splunkConnectionInfoInfo), restrictedToMinimumLevel));
        }
Example #2
0
        private static void Main(string[] args)
        {
            var host     = "192.168.93.128";
            var userName = "******";
            var password = "******";

            var connectArgs = new ServiceArgs {
                Host = host,
            };

            var splunkConnectionInfoInfo = new SplunkConnectionInfo
            {
                ServiceArgs     = connectArgs,
                UserName        = userName,
                Password        = password,
                SplunkEventType = "Serilog",
                SplunkSource    = "Serilog.SplunkSample"
            };

            Log.Logger = new LoggerConfiguration()
                         .Enrich.With(new ThreadIdEnricher())
                         .WriteTo.ColoredConsole(outputTemplate: OutputTemplate)
                         .WriteTo.Splunk(splunkConnectionInfoInfo, 3, TimeSpan.FromSeconds(1))
                         .CreateLogger();

            var serilogLogger = Log.ForContext <Program>();
            var username      = Environment.UserName;

            serilogLogger.Information("Hello from Serilog, running as {Username}!", username);

            var items = Enumerable.Range(1, 10);

            foreach (var item in items)
            {
                serilogLogger.Information("Logging an int, what fun {item}", item);
            }

            System.Console.WriteLine("ok");
            Console.ReadLine();
        }