Exemplo n.º 1
0
        public static LogEventLevel ToSerilogLevel(this SyslogLevel level)
        {
            switch (level)
            {
            case SyslogLevel.Emergency:
                return(LogEventLevel.Fatal);

            case SyslogLevel.Alert:
                return(LogEventLevel.Fatal);

            case SyslogLevel.Critical:
                return(LogEventLevel.Fatal);

            case SyslogLevel.Error:
                return(LogEventLevel.Error);

            case SyslogLevel.Warning:
                return(LogEventLevel.Warning);

            case SyslogLevel.Notice:
                return(LogEventLevel.Warning);

            case SyslogLevel.Info:
                return(LogEventLevel.Information);

            case SyslogLevel.Debug:
                return(LogEventLevel.Debug);

            default:
                throw new ArgumentOutOfRangeException(nameof(level), level, null);
            }
        }
Exemplo n.º 2
0
        static void WriteToLogger(ILogger logger, SyslogLevel level, string message)
        {
            switch (level)
            {
            case SyslogLevel.Emergency:
            case SyslogLevel.Alert:
            case SyslogLevel.Critical:
            case SyslogLevel.Error:
                logger.Error(message);
                break;

            case SyslogLevel.Warning:
            case SyslogLevel.Notice:
                logger.Warn(message);
                break;

            case SyslogLevel.Info:
                logger.Info(message);
                break;

            case SyslogLevel.Debug:
                logger.Debug(message);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(level), level, "Unknown log level");
            }
        }
Exemplo n.º 3
0
        private static SemanticLogLevel GetLogLevel(SyslogLevel level)
        {
            switch (level)
            {
            case SyslogLevel.Emergency:
                return(SemanticLogLevel.Fatal);

            case SyslogLevel.Alert:
                return(SemanticLogLevel.Fatal);

            case SyslogLevel.Critical:
                return(SemanticLogLevel.Fatal);

            case SyslogLevel.Error:
                return(SemanticLogLevel.Error);

            case SyslogLevel.Warning:
                return(SemanticLogLevel.Warning);

            case SyslogLevel.Notice:
                return(SemanticLogLevel.Information);

            case SyslogLevel.Info:
                return(SemanticLogLevel.Information);

            case SyslogLevel.Debug:
                return(SemanticLogLevel.Debug);

            default:
                return(SemanticLogLevel.Debug);
            }
        }
Exemplo n.º 4
0
        public static LogLevel MapLogLevel(SyslogLevel lvl)
        {
            switch (lvl)
            {
            case SyslogLevel.Emergency:
                return(LogLevel.Fatal);

            case SyslogLevel.Alert:
                return(LogLevel.Fatal);

            case SyslogLevel.Critical:
                return(LogLevel.Fatal);

            case SyslogLevel.Error:
                return(LogLevel.Error);

            case SyslogLevel.Warning:
                return(LogLevel.Warn);

            case SyslogLevel.Notice:
                return(LogLevel.Info);

            case SyslogLevel.Info:
                return(LogLevel.Info);

            case SyslogLevel.Debug:
                return(LogLevel.Debug);
            }

            return(LogLevel.Info);
        }
Exemplo n.º 5
0
 /// <summary>
 ///     Instantiates a new LogMessage class instance.
 /// </summary>
 /// <param name="name">
 ///     The librdkafka client instance name.
 /// </param>
 /// <param name="level">
 ///     The log level (levels correspond to syslog(3)), lower is worse.
 /// </param>
 /// <param name="facility">
 ///     The facility (section of librdkafka code) that produced the message.
 /// </param>
 /// <param name="message">
 ///     The log message.
 /// </param>
 public LogMessage(string name, SyslogLevel level, string facility, string message)
 {
     Name     = name;
     Level    = level;
     Facility = facility;
     Message  = message;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Convenience method to send an exception message to GrayLog.
 /// </summary>
 /// <param name="ex">The exception to log.</param>
 /// <param name="level">The level to log the exception at.</param>
 public void Send(Exception ex, SyslogLevel level = SyslogLevel.Error)
 {
     // Send exception:
     if (ex != null)
     {
         this.Send(ex.Message, null, new { level = level }, ex);
     }
 }
        public static Int32 FromSyslogLevel(SyslogLevel value)
        {
            Int32 rval;

            if (FromSyslogLevel(value, out rval) == -1)
            {
                ThrowArgumentException(value);
            }
            return(rval);
        }
Exemplo n.º 8
0
 private void LogCallback(IntPtr rk, SyslogLevel level, string fac, string buf)
 {
     // Ensure registered handlers are never called as a side-effect of Dispose/Finalize (prevents deadlocks in common scenarios).
     // Note: kafkaHandle can be null if the callback is during construction (in that case, we want the delegate to run).
     if (ownedKafkaHandle != null && ownedKafkaHandle.IsClosed)
     {
         return;
     }
     logHandler?.Invoke(new LogMessage(Util.Marshal.PtrToStringUTF8(Librdkafka.name(rk)), level, fac, buf));
 }
Exemplo n.º 9
0
 /// <summary>
 /// <see cref="LogLevel"/> に変換します。
 /// </summary>
 /// <param name="syslogLevel"></param>
 /// <returns></returns>
 public static LogLevel ToLogLevel(this SyslogLevel syslogLevel)
 {
     return(syslogLevel switch
     {
         SyslogLevel.Emergency => LogLevel.Critical,
         SyslogLevel.Alert => LogLevel.Critical,
         SyslogLevel.Critical => LogLevel.Critical,
         SyslogLevel.Error => LogLevel.Error,
         SyslogLevel.Warning => LogLevel.Warning,
         SyslogLevel.Notice => LogLevel.Information,
         SyslogLevel.Info => LogLevel.Information,
         SyslogLevel.Debug => LogLevel.Debug,
         _ => LogLevel.None,
     });
Exemplo n.º 10
0
 private void LogCallback(IntPtr rk, SyslogLevel level, string fac, string buf)
 {
     if (kafkaHandle != null && kafkaHandle.IsClosed)
     {
         return;
     }
     try
     {
         // Ensure registered handlers are never called as a side-effect of Dispose/Finalize (prevents deadlocks in common scenarios).
         // Note: kafkaHandle can be null if the callback is during construction (in that case the delegate should be called).
         logHandler?.Invoke(new LogMessage(Util.Marshal.PtrToStringUTF8(Librdkafka.name(rk)), level, fac, buf));
     }
     catch (Exception)
     {
         // Eat any exception thrown by user log handler code.
     }
 }
Exemplo n.º 11
0
        private SyslogLevel GetLevel(PShell.psmethods.PSAlert.AlertType level)
        {
            SyslogLevel rtn   = SyslogLevel.Information;
            bool        found = false;
            int         idx   = 0;

            int[] sidx = { 1, 2, 3, 4, 6 };
            do
            {
                SyslogLevel lvl = (SyslogLevel)sidx[idx];
                if (lvl.ToString() == level.ToString())
                {
                    found = true;
                    rtn   = lvl;
                }
                idx++;
            } while (!found && idx < sidx.Length);
            return(rtn);
        }
Exemplo n.º 12
0
        private static string BuildMessage(SyslogLevel level, DateTime t, string machine, string source, long instanceid, string message)
        {
            var msg = new StringBuilder();
// PRI
            var priority = 16 * 8 + (int)level;

            msg.Append($"<{priority}>");

            // HEADER::TIMESTAMP
            msg.Append($"{_months[t.Month]} {t.Day:00} {t.Hour:00}:{t.Minute:00}:{t.Second:00} ");

            // HEADER::HOSTNAME
            msg.Append(machine.ToLower(CultureInfo.CurrentCulture).Replace(" ", "_"));
            msg.Append(" ");

            // MSG::TAG
            msg.Append($"{source.Replace(' ', '_')}[{instanceid}]: ");

            // MSG::CONTENT
            // Have to clean out \r and \t, syslog will replace \n with " "
            msg.Append(message.Replace("\r", "").Replace("\t", ""));
            return(msg.ToString());
        }
Exemplo n.º 13
0
 private static int ToSyslogLevel(Int32 value, out SyslogLevel rval)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 14
0
		public static Int32 FromSyslogLevel (SyslogLevel value)
		{
			Int32 rval;
			if (FromSyslogLevel (value, out rval) == -1)
				ThrowArgumentException (value);
			return rval;
		}
Exemplo n.º 15
0
		public static bool TryFromSyslogLevel (SyslogLevel value, out Int32 rval)
		{
			return FromSyslogLevel (value, out rval) == 0;
		}
Exemplo n.º 16
0
		private static extern int FromSyslogLevel (SyslogLevel value, out Int32 rval);
Exemplo n.º 17
0
		public static bool TryToSyslogLevel (Int32 value, out SyslogLevel rval)
		{
			return ToSyslogLevel (value, out rval) == 0;
		}
Exemplo n.º 18
0
 private static string BuildMessage(EntryWrittenEventArgs e, SyslogLevel level)
 {
     return(BuildMessage(level, e.Entry.TimeGenerated, e.Entry.MachineName, e.Entry.Source, e.Entry.InstanceId,
                         e.Entry.Message));
 }
		private static int FromSyslogLevel (SyslogLevel value, out Int32 rval)
		{
			throw new System.NotImplementedException();
		}
Exemplo n.º 20
0
		public static void syslog (SyslogLevel level, string message)
		{
			int _level = UnixConvert.FromSyslogLevel (level);
			sys_syslog (_level, GetSyslogMessage (message));
		}
Exemplo n.º 21
0
		public static int setlogmask (SyslogLevel mask)
		{
			int _mask = UnixConvert.FromSyslogLevel (mask);
			return sys_setlogmask (_mask);
		}
Exemplo n.º 22
0
 public static bool TryFromSyslogLevel(SyslogLevel value, out Int32 rval)
 {
     return(FromSyslogLevel(value, out rval) == 0);
 }
Exemplo n.º 23
0
 private static extern int FromSyslogLevel(SyslogLevel value, out Int32 rval);
Exemplo n.º 24
0
        private void ServerProc()
        {
            Socket   socket   = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            EndPoint remoteEP = new IPEndPoint(IPAddress.Any, IPEndPoint.MinPort);

            char[] splitChars1 = new char[] { '>' };
            char[] splitChars2 = new char[] { ' ' };

            try {
                byte[] buffer = new byte[4096];

                socket.Bind(new IPEndPoint(IPAddress.Any, _port));

                while (!_stop)
                {
                    if (!socket.Poll(50000, SelectMode.SelectRead))
                    {
                        continue;
                    }

                    try {
                        int count = socket.ReceiveFrom(buffer, ref remoteEP);

                        string   message = Encoding.ASCII.GetString(buffer, 0, count);
                        string[] parts   = message.Split(splitChars1, 2);

                        SyslogFacility facility = SyslogFacility.User;
                        SyslogLevel    level    = SyslogLevel.Information;

                        if (parts.Length == 2)
                        {
                            int code = int.Parse(parts[0].TrimStart('<'), CultureInfo.InvariantCulture);
                            facility = (SyslogFacility)(code / 8);
                            level    = (SyslogLevel)(code - ((int)facility * 8));
                            message  = parts[1];
                        }

                        message = message.Substring(16);
                        parts   = message.Split(splitChars2, 2);

                        if (parts.Length == 2)
                        {
                            message = parts[1];
                        }

                        switch (level)
                        {
                        case SyslogLevel.Emergency:
                        case SyslogLevel.Alert:
                            _log.Log(LogLevel.Fatal, message);
                            break;

                        case SyslogLevel.Critical:
                        case SyslogLevel.Error:
                            _log.Log(LogLevel.Error, message);
                            break;

                        case SyslogLevel.Warning:
                            _log.Log(LogLevel.Warn, message);
                            break;

                        case SyslogLevel.Debug:
                            _log.Log(LogLevel.Debug, message);
                            break;

                        case SyslogLevel.Notice:
                        case SyslogLevel.Information:
                        default:
                            _log.Log(LogLevel.Info, message);
                            break;
                        }
                    }
                    catch {
                    }
                }
            }
            catch {
            }
            finally {
                try {
                    socket.Close();
                }
                catch {
                }
            }
        }
		private static int ToSyslogLevel (Int32 value, out SyslogLevel rval)
		{
			throw new System.NotImplementedException();
		}
Exemplo n.º 26
0
		public static void syslog (SyslogLevel level, string format, 
				params object[] parameters)
		{
			int _level = UnixConvert.FromSyslogLevel (level);

			object[] _parameters = new object[checked(parameters.Length+2)];
			_parameters [0] = _level;
			_parameters [1] = format;
			Array.Copy (parameters, 0, _parameters, 2, parameters.Length);
			XPrintfFunctions.syslog (_parameters);
		}
Exemplo n.º 27
0
		public static void syslog (SyslogFacility facility, SyslogLevel level, string message)
		{
			int _facility = UnixConvert.FromSyslogFacility (facility);
			int _level = UnixConvert.FromSyslogLevel (level);
			sys_syslog (_facility | _level, GetSyslogMessage (message));
		}
Exemplo n.º 28
0
 /// <summary>
 /// Convenience method to send an exception message to GrayLog.
 /// </summary>
 /// <param name="ex">The exception to log.</param>
 /// <param name="level">The level to log the exception at.</param>
 public void Send(Exception ex, SyslogLevel level = SyslogLevel.Error)
 {
     // Send exception:
     if (ex != null) this.Send(ex.Message, null, new { level = level }, ex);
 }
Exemplo n.º 29
0
 public string UnProcessedMessage(string Message, string Reason, SyslogLevel log)
 {
     return("");
 }
Exemplo n.º 30
0
		private static extern int ToSyslogLevel (Int32 value, out SyslogLevel rval);
Exemplo n.º 31
0
 public static LogLevel ToLogLevel(this SyslogLevel syslogLevel) =>
 syslogLevel switch
 {
Exemplo n.º 32
0
 private static int FromSyslogLevel(SyslogLevel value, out Int32 rval)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 33
0
 private static extern int ToSyslogLevel(Int32 value, out SyslogLevel rval);
Exemplo n.º 34
0
 public static bool TryToSyslogLevel(Int32 value, out SyslogLevel rval)
 {
     return(ToSyslogLevel(value, out rval) == 0);
 }
Exemplo n.º 35
0
        public static void WriteLine(Level level, string fmt, params object[] parm)
        {
            if ((int)level > (int)MaxLevel)
            {
                return;
            }
            lock (ConsoleLock) {
                if (LogToFile)
                {
                    try {
                        if (LogFile == null)
                        {
                            try {
                                File.Delete(String.Format("{0}.1", LogFilePath));
                            } catch {}
                            try {
                                File.Move(LogFilePath, String.Format("{0}.1", LogFilePath));
                            } catch {}
                            LogFile = new StreamWriter(new FileStream(LogFilePath, System.IO.FileMode.Append));
                        }
                        LogFile.WriteLine("[{0}] {1}", DateTime.Now, String.Format(fmt, parm));
                    }
                    catch {
                        LogToFile = false;
                        if (!LogToSyslog && !LogToConsole)
                        {
                            LogToSyslog = true;                             // we must log somewhere, right?
                        }
                        WriteLine(Level.Info, "Logging to file disabled due to errors while opening or writing to the log file.");
                    }
                }

                if (LogToSyslog)
                {
                    if (IsLinux)
                    {
                        if (!SyslogReady)
                        {
                            Mono.Unix.Native.Syscall.openlog(Marshal.StringToHGlobalAuto(SyslogServiceName), SyslogOptions.LOG_PERROR | SyslogOptions.LOG_PID, SyslogFacility.LOG_DAEMON);
                            SyslogReady = true;
                        }
                        SyslogLevel slevel = SyslogLevel.LOG_DEBUG;
                        switch (level)
                        {
                        case Level.Important: slevel = SyslogLevel.LOG_INFO; break;

                        case Level.Error: slevel = SyslogLevel.LOG_ERR; break;

                        case Level.Warning: slevel = SyslogLevel.LOG_WARNING; break;

                        case Level.Info: slevel = SyslogLevel.LOG_INFO; break;

                        case Level.Debug: slevel = SyslogLevel.LOG_DEBUG; break;
                        }

                        Mono.Unix.Native.Syscall.syslog(SyslogFacility.LOG_DAEMON, slevel, String.Format(fmt, parm));
                    }
                    else
                    {
                        System.Diagnostics.EventLog.WriteEntry(SyslogServiceName, String.Format(fmt, parm));
                    }
                }

                if (LogToConsole && (!LogToSyslog || !IsLinux))
                {
                    Console.WriteLine(fmt, parm);
                }
            }

            if (AutoFlush)
            {
                Flush();
            }
        }