Log everything to sumologic

This commit is contained in:
runebaas 2018-01-20 03:30:42 +01:00
parent 07ca1e1548
commit 751c164c82
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
3 changed files with 21 additions and 15 deletions

View file

@ -25,10 +25,11 @@
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="Overwatch.Net" Version="3.0.0" /> <PackageReference Include="Overwatch.Net" Version="3.0.0" />
<PackageReference Include="PokeApi.NET" Version="1.1.0" /> <PackageReference Include="PokeApi.NET" Version="1.1.0" />
<PackageReference Include="Serilog" Version="2.6.0-dev-00894" /> <PackageReference Include="Serilog" Version="2.6.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1-dev-00757" /> <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1-dev-00757" />
<PackageReference Include="Serilog.Sinks.Literate" Version="3.0.1-dev-00044" /> <PackageReference Include="Serilog.Sinks.Literate" Version="3.0.1-dev-00044" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.1-dev-00771" /> <PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.1-dev-00771" />
<PackageReference Include="Serilog.Sinks.SumoLogic" Version="2.3.0" />
<PackageReference Include="SharpRaven" Version="2.2.0" /> <PackageReference Include="SharpRaven" Version="2.2.0" />
<PackageReference Include="StackExchange.Redis"> <PackageReference Include="StackExchange.Redis">
<Version>1.2.6</Version> <Version>1.2.6</Version>

View file

@ -1,15 +1,19 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Serilog;
using Utf8Json; using Utf8Json;
using Utf8Json.Formatters;
using Utf8Json.Resolvers; using Utf8Json.Resolvers;
namespace Geekbot.net.Lib namespace Geekbot.net.Lib
{ {
public class GeekbotLogger : IGeekbotLogger public class GeekbotLogger : IGeekbotLogger
{ {
private readonly ILogger _serilog;
public GeekbotLogger() public GeekbotLogger()
{ {
JsonSerializer.SetDefaultResolver(StandardResolver.AllowPrivateExcludeNullSnakeCase); _serilog = LoggerFactory.createLogger();
//JsonSerializer.SetDefaultResolver(StandardResolver.AllowPrivateExcludeNullSnakeCase);
Information("Geekbot", "Using GeekbotLogger"); Information("Geekbot", "Using GeekbotLogger");
} }
@ -36,7 +40,8 @@ namespace Geekbot.net.Lib
private Task HandleLogObject(string type, string source, string message, Exception stackTrace = null, object extra = null) private Task HandleLogObject(string type, string source, string message, Exception stackTrace = null, object extra = null)
{ {
var logJson = CreateLogObject(type, source, message, null, extra); var logJson = CreateLogObject(type, source, message, null, extra);
Console.WriteLine(logJson); // fuck serilog
_serilog.Information(logJson + "}");
return Task.CompletedTask; return Task.CompletedTask;
} }
@ -51,7 +56,7 @@ namespace Geekbot.net.Lib
StackTrace = stackTrace, StackTrace = stackTrace,
Extra = extra Extra = extra
}; };
return Utf8Json.JsonSerializer.ToJsonString(logObject); return JsonSerializer.ToJsonString(logObject);
} }
} }

View file

@ -1,26 +1,26 @@
using System; using System;
using Serilog; using Serilog;
using System.Linq; using Serilog.Formatting.Json;
using Serilog.Sinks.SumoLogic;
namespace Geekbot.net.Lib namespace Geekbot.net.Lib
{ {
public class LoggerFactory public class LoggerFactory
{ {
public static ILogger createLogger(string[] args) public static ILogger createLogger()
{ {
var loggerCreation = new LoggerConfiguration() var loggerCreation = new LoggerConfiguration();
.WriteTo.RollingFile("Logs/geekbot-{Date}.txt", shared: true); var template = "{Message}{NewLine}";
if (!Environment.CurrentDirectory.Contains("deploy")) if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("GEEKBOT_SUMO")))
{ {
loggerCreation.WriteTo.LiterateConsole(); Console.WriteLine("Logging Geekbot Logs to Sumologic");
} loggerCreation.WriteTo.SumoLogic(Environment.GetEnvironmentVariable("GEEKBOT_SUMO"),
if (args.Contains("--verbose")) outputTemplate: template);
{
loggerCreation.MinimumLevel.Verbose();
} }
else else
{ {
loggerCreation.MinimumLevel.Information(); loggerCreation.WriteTo.LiterateConsole(outputTemplate: template);
loggerCreation.WriteTo.RollingFile("Logs/geekbot-{Date}.txt", shared: true, outputTemplate: template);
} }
return loggerCreation.CreateLogger(); return loggerCreation.CreateLogger();
} }