public static void AddSyslog(this ILoggerFactory loggerFactory, IConfigurationSection configuration, string hostName = "localhost", LogLevel logLevel = LogLevel.Debug)
        {
            var settings = new SyslogLoggerSettings();

            configuration.Bind(settings);
            loggerFactory.AddProvider(new SyslogLoggerProvider(settings, hostName, logLevel));
        }
Пример #2
0
 public SyslogLoggerProvider(SyslogLoggerSettings settings, string hostName, LogLevel logLevel)
 {
     _settings = settings;
     _hostName = hostName;
     _logLevel = logLevel;
     _loggers  = new Dictionary <string, ILogger>();
 }
Пример #3
0
        public static void AddSyslog(this ILoggerFactory loggerFactory, IConfigurationSection section, string hostName = null, LogLevel logLevel = LogLevel.Debug)
        {
            var settings = new SyslogLoggerSettings();

            section.Bind(settings);
            AddSyslog(loggerFactory, settings, hostName, logLevel);
        }
Пример #4
0
 public SyslogLogger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl)
 {
     _name     = name;
     _settings = settings;
     _host     = host;
     _lvl      = lvl;
 }
Пример #5
0
        public static void AddSyslog(this ILoggingBuilder logbldr, IConfigurationSection section, Action <SyslogLoggerSettings> configurator = null, string hostName = null, LogLevel logLevel = LogLevel.Debug)
        {
            var settings = new SyslogLoggerSettings();

            section.Bind(settings);
            configurator?.Invoke(settings);
            AddSyslog(logbldr, settings, hostName, logLevel);
        }
Пример #6
0
 public SyslogLoggerProvider(SyslogLoggerSettings settings, string hostName, LogLevel logLevel)
 {
     _settings      = settings;
     _hostName      = hostName;
     _logLevel      = logLevel;
     _messageSender = settings.CustomMessageSender ?? MessageSenderFactory.CreateFromSettings(settings);
     _loggers       = new Dictionary <string, ILogger>();
 }
 public SyslogLogger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl, IMessageSender messageSender)
 {
     _name          = name;
     _settings      = settings;
     _host          = host;
     _lvl           = lvl;
     _messageSender = messageSender;
     _processId     = GetProcID();
 }
Пример #8
0
        private string FormatStructuredData(SyslogLoggerSettings settings)
        {
            if (settings.StructuredData == null)
            {
                return(null);
            }

            if (settings.StructuredData.Count() == 0)
            {
                return(null);
            }

            var sb = new StringBuilder();

            sb.Append(" ");             // Need to add a space to separate what came before it.

            foreach (var data in settings.StructuredData)
            {
                if (!IsValidPrintAscii(data.Id, '=', ' ', ']', '"'))
                {
                    throw new InvalidOperationException($"ID for structured data {data.Id} is not valid. US Ascii 33-126 only, except '=', ' ', ']', '\"'");
                }

                sb.Append($"[{data.Id}");

                if (data.Elements != null)
                {
                    foreach (var element in data.Elements)
                    {
                        if (!IsValidPrintAscii(element.Name, '=', ' ', ']', '"'))
                        {
                            throw new InvalidOperationException($"Element {element.Name} in structured data {data.Id} is not valid. US Ascii 33-126 only, except '=', ' ', ']', '\"'");
                        }

                        // According to spec, need to escape these characters.
                        var val = element.Value
                                  .Replace("\\", "\\\\")
                                  .Replace("\"", "\\\"")
                                  .Replace("]", "\\]");
                        sb.Append($" {element.Name}=\"{val}\"");
                    }
                }

                sb.Append("]");
            }

            return(sb.ToString());
        }
Пример #9
0
 public static void AddSyslog(this ILoggingBuilder logbldr, SyslogLoggerSettings settings, string hostName = null, LogLevel logLevel = LogLevel.Debug)
 {
     logbldr.AddProvider(new SyslogLoggerProvider(settings, hostName ?? System.Environment.MachineName, logLevel));
 }
Пример #10
0
 public Syslog5424v1Logger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl)
     : base(name, settings, host, lvl)
 {
     _structuredData = FormatStructuredData(settings);
 }
Пример #11
0
 public Syslog3164Logger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl)
     : base(name, settings, host, lvl)
 {
 }
 public SyslogLogger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl)
     : this(name, settings, host, lvl, new UdpMessageSender(settings.ServerHost, settings.ServerPort))
 {
 }
 public Syslog3164Logger(string name, SyslogLoggerSettings settings, string host, LogLevel lvl, IMessageSender messageSender)
     : base(name, settings, host, lvl, messageSender)
 {
 }