using Microsoft.Extensions.Logging; using Syslog.Framework.Logging; using Syslog.Framework.Logging.TransportProtocols; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Transactions; namespace Blog3000.Server.Utils { public class MySyslog5424v1Logger: Syslog5424v1Logger { private readonly string appName; private readonly SyslogLoggerSettings settings; public MySyslog5424v1Logger(string name, SyslogLoggerSettings settings, string appName, string host, LogLevel lvl, IMessageSender messageSender) : base(name, settings, host, lvl, messageSender) { this.settings = settings; this.appName = appName; } // Duplicated due to visibility limitations internal enum SeverityType { Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debug }; protected override string FormatMessage(int priority, DateTime now, string host, string name, int? procid, int msgid, string message) { int level = priority - ((int)settings.FacilityType * 8); string flag = "-"; switch(level) { case (int)SeverityType.Alert: case (int)SeverityType.Critical: case (int)SeverityType.Error: flag = "!"; break; case (int)SeverityType.Warning: flag = "?"; break; case (int)SeverityType.Notice: flag = "*"; break; case (int)SeverityType.Debug: case (int)SeverityType.Informational: flag = "-"; break; } //System.IO.File.AppendAllText("/tmp/D", $"....{message}....\n"); return base.FormatMessage(priority, now, host, appName, procid, msgid, $"{flag} {(name??"").Replace("Blog3000.Server.", "")}: {message}"/* message*/); } } }