59 lines
1.7 KiB
C#
59 lines
1.7 KiB
C#
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*/);
|
|
}
|
|
}
|
|
}
|