Add commandline parser

This commit is contained in:
Runebaas 2018-05-02 20:19:11 +02:00
parent d3fcfc8a5c
commit 2701f641cf
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
5 changed files with 44 additions and 13 deletions

View file

@ -9,10 +9,10 @@ namespace Geekbot.net.Lib
private readonly NLog.Logger _logger;
private readonly JsonSerializerSettings _serializerSettings;
public GeekbotLogger(bool sumologicActive)
public GeekbotLogger(RunParameters runParameters, bool sumologicActive)
{
_sumologicActive = sumologicActive;
_logger = LoggerFactory.CreateNLog(sumologicActive);
_logger = LoggerFactory.CreateNLog(runParameters, sumologicActive);
_serializerSettings = new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,

View file

@ -9,7 +9,7 @@ namespace Geekbot.net.Lib
{
public class LoggerFactory
{
public static Logger CreateNLog(bool sumologicActive)
public static Logger CreateNLog(RunParameters runParameters, bool sumologicActive)
{
var config = new LoggingConfiguration();
@ -36,8 +36,9 @@ namespace Geekbot.net.Lib
}
else
{
var minLevel = runParameters.Verbose ? LogLevel.Trace : LogLevel.Info;
config.LoggingRules.Add(
new LoggingRule("*", LogLevel.Trace, LogLevel.Fatal,
new LoggingRule("*", minLevel, LogLevel.Fatal,
new ColoredConsoleTarget
{
Name = "Console",
@ -47,7 +48,7 @@ namespace Geekbot.net.Lib
);
config.LoggingRules.Add(
new LoggingRule("*", LogLevel.Trace, LogLevel.Fatal,
new LoggingRule("*", minLevel, LogLevel.Fatal,
new FileTarget
{
Name = "File",

View file

@ -0,0 +1,23 @@
using System;
using CommandLine;
namespace Geekbot.net.Lib
{
public class RunParameters
{
[Option('V', "verbose", Default = false, HelpText = "Prints all messages to standard output.")]
public bool Verbose { get; set; }
[Option('r', "reset", Default = false, HelpText = "Resets the bot")]
public bool Reset { get; set; }
[Option('j', "log-json", Default = false, HelpText = "Logs messages as json")]
public bool LogJson { get; set; }
[Option("disable-api", Default = false, HelpText = "Disables the web api")]
public bool DisableApi { get; set; }
[Option('e', "expose-errors", Default = false, HelpText = "Shows internal errors in the chat")]
public bool ExposeErrors { get; set; }
}
}