Use LogSource Enum for logger and improve logging messages
This commit is contained in:
parent
0fe273151c
commit
2b85caeb29
16 changed files with 122 additions and 95 deletions
|
@ -1,5 +1,7 @@
|
|||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Discord;
|
||||
using Geekbot.net.Commands.Randomness.Cat;
|
||||
|
||||
namespace Geekbot.net.Lib.Logger
|
||||
{
|
||||
|
@ -14,26 +16,37 @@ namespace Geekbot.net.Lib.Logger
|
|||
|
||||
public Task Log(LogMessage message)
|
||||
{
|
||||
LogSource source;
|
||||
try
|
||||
{
|
||||
source = Enum.Parse<LogSource>(message.Source);
|
||||
}
|
||||
catch
|
||||
{
|
||||
source = LogSource.Discord;
|
||||
_logger.Warning(LogSource.Geekbot, $"Could not parse {message.Source} to a LogSource Enum");
|
||||
}
|
||||
|
||||
var logMessage = $"[{message.Source}] {message.Message}";
|
||||
switch (message.Severity)
|
||||
{
|
||||
case LogSeverity.Verbose:
|
||||
_logger.Trace(message.Source, message.Message);
|
||||
_logger.Trace(source, message.Message);
|
||||
break;
|
||||
case LogSeverity.Debug:
|
||||
_logger.Debug(message.Source, message.Message);
|
||||
_logger.Debug(source, message.Message);
|
||||
break;
|
||||
case LogSeverity.Info:
|
||||
_logger.Information(message.Source, message.Message);
|
||||
_logger.Information(source, message.Message);
|
||||
break;
|
||||
case LogSeverity.Critical:
|
||||
case LogSeverity.Error:
|
||||
case LogSeverity.Warning:
|
||||
if (logMessage.Contains("VOICE_STATE_UPDATE")) break;
|
||||
_logger.Error(message.Source, message.Message, message.Exception);
|
||||
_logger.Error(source, message.Message, message.Exception);
|
||||
break;
|
||||
default:
|
||||
_logger.Information(message.Source, $"{logMessage} --- {message.Severity}");
|
||||
_logger.Information(source, $"{logMessage} --- {message.Severity}");
|
||||
break;
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
|
|
|
@ -18,35 +18,36 @@ namespace Geekbot.net.Lib.Logger
|
|||
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
|
||||
NullValueHandling = NullValueHandling.Include
|
||||
};
|
||||
Information("Geekbot", "Using GeekbotLogger");
|
||||
Information(LogSource.Geekbot, "Using GeekbotLogger");
|
||||
}
|
||||
|
||||
public void Trace(string source, string message, object extra = null)
|
||||
public void Trace(LogSource source, string message, object extra = null)
|
||||
{
|
||||
_logger.Trace(CreateLogString("Trace", source, message, null, extra));
|
||||
}
|
||||
|
||||
public void Debug(string source, string message, object extra = null)
|
||||
public void Debug(LogSource source, string message, object extra = null)
|
||||
{
|
||||
_logger.Debug(CreateLogString("Debug", source, message, null, extra));
|
||||
}
|
||||
|
||||
public void Information(string source, string message, object extra = null)
|
||||
public void Information(LogSource source, string message, object extra = null)
|
||||
{
|
||||
_logger.Info(CreateLogString("Information", source, message, null, extra));
|
||||
}
|
||||
|
||||
public void Warning(string source, string message, Exception stackTrace = null, object extra = null)
|
||||
public void Warning(LogSource source, string message, Exception stackTrace = null, object extra = null)
|
||||
{
|
||||
_logger.Warn(CreateLogString("Warning", source, message, stackTrace, extra));
|
||||
}
|
||||
|
||||
public void Error(string source, string message, Exception stackTrace, object extra = null)
|
||||
public void Error(LogSource source, string message, Exception stackTrace, object extra = null)
|
||||
{
|
||||
_logger.Error(CreateLogString("Error", source, message, stackTrace, extra));
|
||||
if (_logAsJson) _logger.Error(CreateLogString("Error", source, message, stackTrace, extra));
|
||||
else _logger.Error(stackTrace, CreateLogString("Error", source, message, stackTrace, extra));
|
||||
}
|
||||
|
||||
private string CreateLogString(string type, string source, string message, Exception stackTrace = null, object extra = null)
|
||||
private string CreateLogString(string type, LogSource source, string message, Exception stackTrace = null, object extra = null)
|
||||
{
|
||||
if (_logAsJson)
|
||||
{
|
||||
|
@ -62,7 +63,7 @@ namespace Geekbot.net.Lib.Logger
|
|||
return JsonConvert.SerializeObject(logObject, Formatting.None, _serializerSettings);
|
||||
}
|
||||
|
||||
if (source != "Message") return $"[{source}] - {message}";
|
||||
if (source != LogSource.Message) return $"[{source}] - {message}";
|
||||
|
||||
var m = (MessageDto) extra;
|
||||
return $"[{source}] - [{m?.Guild.Name} - {m?.Channel.Name}] {m?.User.Name}: {m?.Message.Content}";
|
||||
|
|
|
@ -4,10 +4,10 @@ namespace Geekbot.net.Lib.Logger
|
|||
{
|
||||
public interface IGeekbotLogger
|
||||
{
|
||||
void Trace(string source, string message, object extra = null);
|
||||
void Debug(string source, string message, object extra = null);
|
||||
void Information(string source, string message, object extra = null);
|
||||
void Warning(string source, string message, Exception stackTrace = null, object extra = null);
|
||||
void Error(string source, string message, Exception stackTrace, object extra = null);
|
||||
void Trace(LogSource source, string message, object extra = null);
|
||||
void Debug(LogSource source, string message, object extra = null);
|
||||
void Information(LogSource source, string message, object extra = null);
|
||||
void Warning(LogSource source, string message, Exception stackTrace = null, object extra = null);
|
||||
void Error(LogSource source, string message, Exception stackTrace, object extra = null);
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ namespace Geekbot.net.Lib.Logger
|
|||
{
|
||||
public DateTime Timestamp { get; set; }
|
||||
public string Type { get; set; }
|
||||
public string Source { get; set; }
|
||||
public LogSource Source { get; set; }
|
||||
public string Message { get; set; }
|
||||
public Exception StackTrace { get; set; }
|
||||
public object Extra { get; set; }
|
||||
|
|
16
Geekbot.net/Lib/Logger/LogSource.cs
Normal file
16
Geekbot.net/Lib/Logger/LogSource.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
namespace Geekbot.net.Lib.Logger
|
||||
{
|
||||
public enum LogSource
|
||||
{
|
||||
Geekbot,
|
||||
Rest,
|
||||
Gateway,
|
||||
Discord,
|
||||
Redis,
|
||||
Message,
|
||||
UserRepository,
|
||||
Command,
|
||||
Api,
|
||||
Other
|
||||
}
|
||||
}
|
|
@ -56,13 +56,13 @@ namespace Geekbot.net.Lib.Logger
|
|||
},
|
||||
Guild = new MessageDto.IdAndName
|
||||
{
|
||||
Id = channel.Guild.Id.ToString(),
|
||||
Name = channel.Guild.Name
|
||||
Id = channel?.Guild?.Id.ToString(),
|
||||
Name = channel?.Guild?.Name
|
||||
},
|
||||
Channel = new MessageDto.IdAndName
|
||||
{
|
||||
Id = channel.Id.ToString(),
|
||||
Name = channel.Name
|
||||
Id = channel?.Id.ToString(),
|
||||
Name = channel?.Name
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue