/// <summary>
        /// Graylogs the specified hostname or address.
        /// </summary>
        /// <param name="loggerSinkConfiguration">The logger sink configuration.</param>
        /// <param name="hostnameOrAddress">The hostname or address.</param>
        /// <param name="port">The port.</param>
        /// <param name="transportType">Type of the transport.</param>
        /// <param name="minimumLogEventLevel">The minimum log event level.</param>
        /// <param name="messageIdGeneratorType">Type of the message identifier generator.</param>
        /// <param name="shortMessageMaxLength">Short length of the message maximum.</param>
        /// <param name="stackTraceDepth">The stack trace depth.</param>
        /// <param name="facility">The facility.</param>
        /// <param name="maxMessageSizeInUdp">the maxMessageSizeInUdp</param>
        /// <returns></returns>
        public static LoggerConfiguration Graylog(this LoggerSinkConfiguration loggerSinkConfiguration,
                                                  string hostnameOrAddress,
                                                  int port,
                                                  TransportType transportType,
                                                  LogEventLevel minimumLogEventLevel            = LevelAlias.Minimum,
                                                  MessageIdGeneratortype messageIdGeneratorType = GraylogSinkOptionsBase.DefaultMessageGeneratorType,
                                                  int shortMessageMaxLength = GraylogSinkOptionsBase.DefaultShortMessageMaxLength,
                                                  int stackTraceDepth       = GraylogSinkOptionsBase.DefaultStackTraceDepth,
                                                  string facility           = GraylogSinkOptionsBase.DefaultFacility,
                                                  int maxMessageSizeInUdp   = GraylogSinkOptionsBase.DefaultMaxMessageSizeInUdp)
        {
            // ReSharper disable once UseObjectOrCollectionInitializer
            var options = new GraylogSinkOptions();

            options.HostnameOrAddress = hostnameOrAddress.Expand();
            options.Port                  = port;
            options.TransportType         = transportType;
            options.MinimumLogEventLevel  = minimumLogEventLevel;
            options.MessageGeneratorType  = messageIdGeneratorType;
            options.ShortMessageMaxLength = shortMessageMaxLength;
            options.StackTraceDepth       = stackTraceDepth;
            options.Facility              = facility.Expand();
            options.MaxMessageSizeInUdp   = maxMessageSizeInUdp;

            return(loggerSinkConfiguration.Graylog(options));
        }
示例#2
0
        /// <summary>
        /// Graylogs the specified hostname or address.
        /// </summary>
        /// <param name="loggerSinkConfiguration">The logger sink configuration.</param>
        /// <param name="hostnameOrAddress">The hostname or address.</param>
        /// <param name="port">The port.</param>
        /// <param name="transportType">Type of the transport.</param>
        /// <param name="minimumLogEventLevel">The minimum log event level.</param>
        /// <param name="messageIdGeneratorType">Type of the message identifier generator.</param>
        /// <param name="shortMessageMaxLength">Short length of the message maximum.</param>
        /// <param name="stackTraceDepth">The stack trace depth.</param>
        /// <param name="facility">The facility.</param>
        /// <returns></returns>
        public static LoggerConfiguration Graylog(this LoggerSinkConfiguration loggerSinkConfiguration,
                                                  string hostnameOrAddress,
                                                  int port,
                                                  TransportType transportType,
                                                  LogEventLevel minimumLogEventLevel            = LevelAlias.Minimum,
                                                  MessageIdGeneratortype messageIdGeneratorType = GraylogSinkOptions.DefaultMessageGeneratorType,
                                                  int shortMessageMaxLength = GraylogSinkOptions.DefaultShortMessageMaxLength,
                                                  int stackTraceDepth       = GraylogSinkOptions.DefaultStackTraceDepth,
                                                  string facility           = GraylogSinkOptions.DefaultFacility)
        {
            var options = new GraylogSinkOptions
            {
                HostnameOrAddress = hostnameOrAddress,
                Port                   = port,
                TransportType          = transportType,
                MinimumLogEventLevel   = minimumLogEventLevel,
                MessageGeneratorType   = messageIdGeneratorType,
                ShortMessageMaxLength  = shortMessageMaxLength,
                StackTraceDepth        = stackTraceDepth,
                Facility               = facility,
                PropertyNamingStrategy = new NoOpPropertyNamingStrategy()
            };

            return(loggerSinkConfiguration.Graylog(options));
        }
示例#3
0
        /// <summary>
        /// Graylogs the specified hostname or address.
        /// </summary>
        /// <param name="loggerSinkConfiguration">The logger sink configuration.</param>
        /// <param name="hostnameOrAddress">The hostname or address.</param>
        /// <param name="port">The port.</param>
        /// <param name="transportType">Type of the transport.</param>
        /// <param name="minimumLogEventLevel">The minimum log event level.</param>
        /// <param name="messageIdGeneratorType">Type of the message identifier generator.</param>
        /// <param name="shortMessageMaxLength">Short length of the message maximum.</param>
        /// <param name="stackTraceDepth">The stack trace depth.</param>
        /// <param name="facility">The facility.</param>
        /// <param name="propertyNamingStrategy"></param>
        /// <param name="period"></param>
        /// <param name="batchPostingLimit"></param>
        /// <returns></returns>
        public static LoggerConfiguration Graylog(
            this LoggerSinkConfiguration loggerSinkConfiguration,
            string hostnameOrAddress,
            int port,
            TransportType transportType,
            LogEventLevel minimumLogEventLevel            = LevelAlias.Minimum,
            MessageIdGeneratortype messageIdGeneratorType = GraylogSinkOptions.DefaultMessageGeneratorType,
            int shortMessageMaxLength = GraylogSinkOptions.DefaultShortMessageMaxLength,
            int stackTraceDepth       = GraylogSinkOptions.DefaultStackTraceDepth,
            string facility           = GraylogSinkOptions.DefaultFacility,
            IPropertyNamingStrategy propertyNamingStrategy = null,
            TimeSpan?period       = null,
            int batchPostingLimit = GraylogSinkOptions.DefaultBatchPostingLimit
            )
        {
            var options = new GraylogSinkOptions
            {
                HostnameOrAddress = hostnameOrAddress,
                Port                   = port,
                TransportType          = transportType,
                MinimumLogEventLevel   = minimumLogEventLevel,
                MessageGeneratorType   = messageIdGeneratorType,
                ShortMessageMaxLength  = shortMessageMaxLength,
                StackTraceDepth        = stackTraceDepth,
                Facility               = facility,
                PropertyNamingStrategy = propertyNamingStrategy ?? new NoOpPropertyNamingStrategy(),
                Period                 = period ?? GraylogSinkOptions.DefaultPeriod,
                BatchSizeLimit         = batchPostingLimit
            };

            return(loggerSinkConfiguration.Graylog(options));
        }
示例#4
0
        /// <summary>
        /// Graylogs the specified hostname or address.
        /// </summary>
        /// <param name="loggerSinkConfiguration">The logger sink configuration.</param>
        /// <param name="hostnameOrAddress">The hostname or address.</param>
        /// <param name="port">The port.</param>
        /// <param name="batchSizeLimit">The batchsize limit.</param>
        /// <param name="period">The batching period.</param>
        /// <param name="queueLimit">The queue limit.</param>
        /// <param name="transportType">Type of the transport.</param>
        /// <param name="minimumLogEventLevel">The minimum log event level.</param>
        /// <param name="messageIdGeneratorType">Type of the message identifier generator.</param>
        /// <param name="shortMessageMaxLength">Short length of the message maximum.</param>
        /// <param name="stackTraceDepth">The stack trace depth.</param>
        /// <param name="facility">The facility.</param>
        /// <returns></returns>
        public static LoggerConfiguration Graylog(this LoggerSinkConfiguration loggerSinkConfiguration,
                                                  string hostnameOrAddress,
                                                  int port,
                                                  int batchSizeLimit,
                                                  TimeSpan period,
                                                  int queueLimit,
                                                  TransportType transportType,
                                                  LogEventLevel minimumLogEventLevel            = LevelAlias.Minimum,
                                                  MessageIdGeneratortype messageIdGeneratorType = GraylogSinkOptionsBase.DefaultMessageGeneratorType,
                                                  int shortMessageMaxLength = GraylogSinkOptionsBase.DefaultShortMessageMaxLength,
                                                  int stackTraceDepth       = GraylogSinkOptionsBase.DefaultStackTraceDepth,
                                                  string facility           = GraylogSinkOptionsBase.DefaultFacility)
        {
            var options = new BatchingGraylogSinkOptions
            {
                HostnameOrAddress = hostnameOrAddress,
                Port                  = port,
                BatchSizeLimit        = batchSizeLimit,
                Period                = period,
                QueueLimit            = queueLimit,
                TransportType         = transportType,
                MinimumLogEventLevel  = minimumLogEventLevel,
                MessageGeneratorType  = messageIdGeneratorType,
                ShortMessageMaxLength = shortMessageMaxLength,
                StackTraceDepth       = stackTraceDepth,
                Facility              = facility,
            };

            return(loggerSinkConfiguration.Graylog(options));
        }
        /// <exception cref="ArgumentOutOfRangeException">Condition.</exception>
        public IMessageIdGenerator Resolve(MessageIdGeneratortype generatorType, byte[] message)
        {
            switch (generatorType)
            {
            case MessageIdGeneratortype.Timestamp:
                return(new TimestampMessageIdGenerator(DateTime.Now));

            case MessageIdGeneratortype.Md5:
                return(new Md5MessageIdGenerator(message));

            default:
                throw new ArgumentOutOfRangeException(nameof(generatorType), generatorType, null);
            }
        }
        /// <summary>
        /// Graylogs the specified hostname or address.
        /// </summary>
        /// <param name="loggerSinkConfiguration">The logger sink configuration.</param>
        /// <param name="hostnameOrAddress">The hostname or address.</param>
        /// <param name="port">The port.</param>
        /// <param name="transportType">Type of the transport.</param>
        /// <param name="minimumLogEventLevel">The minimum log event level.</param>
        /// <param name="messageIdGeneratorType">Type of the message identifier generator.</param>
        /// <param name="shortMessageMaxLength">Short length of the message maximum.</param>
        /// <param name="stackTraceDepth">The stack trace depth.</param>
        /// <param name="facility">The facility.</param>
        /// <param name="batchSizeLimit">The batch size limit</param>
        /// <param name="period">The period limit default is one second</param>
        /// <param name="queueLimit">queue limit</param>
        /// <param name="maxMessageSizeInUdp">the maxMessageSizeInUdp</param>
        /// <param name="includeMessageTemplate">if set to <c>true</c> if include message template to graylog.</param>
        /// <param name="messageTemplateFieldName">Name of the message template field.</param>
        /// <returns></returns>
        public static LoggerConfiguration Graylog(this LoggerSinkConfiguration loggerSinkConfiguration,
                                                  string hostnameOrAddress,
                                                  int port,
                                                  TransportType transportType,
                                                  LogEventLevel minimumLogEventLevel            = LevelAlias.Minimum,
                                                  MessageIdGeneratortype messageIdGeneratorType = GraylogSinkOptionsBase.DefaultMessageGeneratorType,
                                                  int shortMessageMaxLength       = GraylogSinkOptionsBase.DefaultShortMessageMaxLength,
                                                  int stackTraceDepth             = GraylogSinkOptionsBase.DefaultStackTraceDepth,
                                                  string facility                 = GraylogSinkOptionsBase.DefaultFacility,
                                                  int maxMessageSizeInUdp         = GraylogSinkOptionsBase.DefaultMaxMessageSizeInUdp,
                                                  int batchSizeLimit              = 10,
                                                  TimeSpan period                 = default,
                                                  int queueLimit                  = 1000,
                                                  bool includeMessageTemplate     = false,
                                                  string messageTemplateFieldName = GraylogSinkOptionsBase.DefaultMessageTemplateFieldName
                                                  )
        {
            if (period == default)
            {
                period = TimeSpan.FromSeconds(1);
            }

            // ReSharper disable once UseObjectOrCollectionInitializer
            var options = new BatchingGraylogSinkOptions();

            options.HostnameOrAddress = hostnameOrAddress;
            options.Port                     = port;
            options.TransportType            = transportType;
            options.MinimumLogEventLevel     = minimumLogEventLevel;
            options.MessageGeneratorType     = messageIdGeneratorType;
            options.ShortMessageMaxLength    = shortMessageMaxLength;
            options.StackTraceDepth          = stackTraceDepth;
            options.Facility                 = facility;
            options.BatchSizeLimit           = batchSizeLimit;
            options.Period                   = period;
            options.QueueLimit               = queueLimit;
            options.MaxMessageSizeInUdp      = maxMessageSizeInUdp;
            options.IncludeMessageTemplate   = includeMessageTemplate;
            options.MessageTemplateFieldName = messageTemplateFieldName;

            return(loggerSinkConfiguration.Graylog(options));
        }
 /// <inheritdoc />
 public ChunkSettings(MessageIdGeneratortype messageIdGeneratorType, int maxMessageSizeInUdp)
 {
     MessageIdGeneratorType = messageIdGeneratorType;
     MaxMessageSizeInUdp    = maxMessageSizeInUdp;
 }
示例#8
0
 /// <exception cref="System.ArgumentOutOfRangeException">Condition.</exception>
 public IMessageIdGenerator Resolve(MessageIdGeneratortype generatorType)
 {
     return(_messageGenerators[generatorType].Value);
 }