diff --git a/Geekbot.net/Lib/ErrorHandling/ErrorHandler.cs b/Geekbot.net/Lib/ErrorHandling/ErrorHandler.cs index 7c9d8ff..cda9129 100644 --- a/Geekbot.net/Lib/ErrorHandling/ErrorHandler.cs +++ b/Geekbot.net/Lib/ErrorHandling/ErrorHandler.cs @@ -18,13 +18,13 @@ namespace Geekbot.net.Lib.ErrorHandling private readonly IRavenClient _raven; private readonly bool _errorsInChat; - public ErrorHandler(IGeekbotLogger logger, ITranslationHandler translation, bool errorsInChat) + public ErrorHandler(IGeekbotLogger logger, ITranslationHandler translation, RunParameters runParameters) { _logger = logger; _translation = translation; - _errorsInChat = errorsInChat; + _errorsInChat = runParameters.ExposeErrors; - var sentryDsn = Environment.GetEnvironmentVariable("SENTRY"); + var sentryDsn = runParameters.SentryEndpoint; if (!string.IsNullOrEmpty(sentryDsn)) { _raven = new RavenClient(sentryDsn) { Release = Constants.BotVersion(), Environment = "Production" }; diff --git a/Geekbot.net/Lib/Logger/GeekbotLogger.cs b/Geekbot.net/Lib/Logger/GeekbotLogger.cs index 09a3ecb..e2a3714 100644 --- a/Geekbot.net/Lib/Logger/GeekbotLogger.cs +++ b/Geekbot.net/Lib/Logger/GeekbotLogger.cs @@ -9,10 +9,10 @@ namespace Geekbot.net.Lib.Logger private readonly NLog.Logger _logger; private readonly JsonSerializerSettings _serializerSettings; - public GeekbotLogger(RunParameters runParameters, bool sumologicActive) + public GeekbotLogger(RunParameters runParameters) { - _logAsJson = sumologicActive || runParameters.LogJson; - _logger = LoggerFactory.CreateNLog(runParameters, sumologicActive); + _logAsJson = !string.IsNullOrEmpty(runParameters.SumologicEndpoint) || runParameters.LogJson; + _logger = LoggerFactory.CreateNLog(runParameters); _serializerSettings = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize, diff --git a/Geekbot.net/Lib/Logger/LoggerFactory.cs b/Geekbot.net/Lib/Logger/LoggerFactory.cs index b07bcda..e31686e 100644 --- a/Geekbot.net/Lib/Logger/LoggerFactory.cs +++ b/Geekbot.net/Lib/Logger/LoggerFactory.cs @@ -9,18 +9,18 @@ namespace Geekbot.net.Lib.Logger { public class LoggerFactory { - public static NLog.Logger CreateNLog(RunParameters runParameters, bool sumologicActive) + public static NLog.Logger CreateNLog(RunParameters runParameters) { var config = new LoggingConfiguration(); - if (sumologicActive) + if (!string.IsNullOrEmpty(runParameters.SumologicEndpoint)) { Console.WriteLine("Logging Geekbot Logs to Sumologic"); config.LoggingRules.Add( new LoggingRule("*", LogLevel.Debug, LogLevel.Fatal, new SumoLogicTarget() { - Url = Environment.GetEnvironmentVariable("GEEKBOT_SUMO"), + Url = runParameters.SumologicEndpoint, SourceName = "GeekbotLogger", Layout = "${message}", UseConsoleLog = false, diff --git a/Geekbot.net/Lib/RunParameters.cs b/Geekbot.net/Lib/RunParameters.cs index 8ebed67..bd8ce25 100644 --- a/Geekbot.net/Lib/RunParameters.cs +++ b/Geekbot.net/Lib/RunParameters.cs @@ -67,6 +67,16 @@ namespace Geekbot.net.Lib [Option("api-port", HelpText = "Port on which the WebApi listens (default: 12995) (env: API_PORT)")] public string ApiPort { get; set; } = ParamFallback("API_PORT", "12995"); + /************************************ + * Intergrations * + ************************************/ + + [Option("sumologic", HelpText = "Sumologic endpoint for logging (default: null) (env: SUMOLOGIC)")] + public string SumologicEndpoint { get; set; } = ParamFallback("SUMOLOGIC"); + + [Option("sentry", HelpText = "Sentry endpoint for error reporting (default: null) (env: SENTRY)")] + public string SentryEndpoint { get; set; } = ParamFallback("SENTRY"); + /************************************ * Helper Functions * ************************************/ diff --git a/Geekbot.net/Program.cs b/Geekbot.net/Program.cs index 1299583..a5b0668 100755 --- a/Geekbot.net/Program.cs +++ b/Geekbot.net/Program.cs @@ -58,8 +58,7 @@ namespace Geekbot.net logo.AppendLine(@" \____|_____|_____|_|\_\____/ \___/ |_|"); logo.AppendLine($"Version {Constants.BotVersion()} ".PadRight(41, '=')); Console.WriteLine(logo.ToString()); - var sumologicActive = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("GEEKBOT_SUMO")); - var logger = new GeekbotLogger(runParameters, sumologicActive); + var logger = new GeekbotLogger(runParameters); logger.Information(LogSource.Geekbot, "Starting..."); try { @@ -169,7 +168,7 @@ namespace Geekbot.net var randomNumberGenerator = new RandomNumberGenerator(); var kvMemoryStore = new KvInInMemoryStore(); var translationHandler = new TranslationHandler(_logger, _guildSettingsManager); - var errorHandler = new ErrorHandler(_logger, translationHandler, _runParameters.ExposeErrors); + var errorHandler = new ErrorHandler(_logger, translationHandler, _runParameters); services.AddSingleton(_userRepository); services.AddSingleton(_logger);