Exemple #1
0
 /// <summary>
 /// Creates a Windows event log for the extender of ServiceExe.
 /// serviceName must be defined.
 /// </summary>
 public static ILogger CreateLog(string svcName)
 {
     windowsLogger = (WindowsLogger)Log.CreateLogger("Windows");
     windowsLogger.ApplicationName = svcName;
     WindowsLogger.CreateLog(svcName, svcName);
     return(windowsLogger);
 }
Exemple #2
0
        public void SubscribeShouldIncrementSubscribers()
        {
            BamServer server = CreateServer(MethodBase.GetCurrentMethod().Name);
            ILogger   logger = new TextFileLogger();

            Expect.AreEqual(0, server.Subscribers.Length);
            server.Subscribe(logger);
            Expect.AreEqual(1, server.Subscribers.Length);
            server.Subscribe(logger);
            Expect.AreEqual(1, server.Subscribers.Length); // should only get added once
            ILogger winLogger = new WindowsLogger();

            server.Subscribe(winLogger);
            Expect.AreEqual(2, server.Subscribers.Length);
            Expect.IsTrue(server.IsSubscribed(winLogger));
        }
Exemple #3
0
        public bool LogMessage(string message, LoggingTarget target)
        {
            ILogger Logger = null;

            switch (target)
            {
            case LoggingTarget.Console:
                Logger = new WindowsLogger();
                break;

            case LoggingTarget.Database:
                //Logger = new DatabaseLogger();
                break;
            }

            if (Logger != null)
            {
                return(Logger.LogMessage(message));
            }
            else
            {
                return(false);
            }
        }
Exemple #4
0
 public void Given_Subject_IsOfType(Type type)
 {
     subject = new WindowsLogger(type);
 }
Exemple #5
0
 public void SetUp()
 {
     subject = null;
     ilog    = new Mock <ILog>();
 }
Exemple #6
0
        static void Main(string[] args)
        {
            // Setting up logging
            BaseLogger logger;

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                logger = new WindowsLogger("RealTimeKql", "RealTimeKql");
            }
            else
            {
                logger = new ConsoleLogger();
            }

            if (!logger.Setup())
            {
                Console.WriteLine("Error instantiating logger. Terminating program...");
                return;
            }

            logger.Log(LogLevel.INFORMATION, "Welcome to Real-Time KQL!");

            // Parsing command line arguments
            var commandLineParser = new CommandLineParser(logger, args);

            if (!commandLineParser.Parse())
            {
                logger.Log(LogLevel.ERROR, "Problem parsing command line arguments. Terminating program...");
                return;
            }
            else if (commandLineParser.InputSubcommand == null)
            {
                // User called help, terminating program
                return;
            }

            // Setting up output method
            IOutput output = null;

            if (commandLineParser.OutputSubcommand == null)
            {
                output = new ConsoleJsonOutput(logger);
            }
            switch (commandLineParser.OutputSubcommand.Name)
            {
            case "json":
                output = GetJsonOutput(logger, commandLineParser.OutputSubcommand);
                break;

            case "table":
                output = new ConsoleTableOutput(logger);
                break;

            case "adx":
                output = GetAdxOutput(logger, commandLineParser.OutputSubcommand.Options);
                break;

            case "blob":
                output = GetBlobOutput(logger, commandLineParser.OutputSubcommand.Options);
                break;

            case "eventlog":
                output = GetEventLogOutput(logger, commandLineParser.OutputSubcommand.Options);
                break;

            default:
                logger.Log(LogLevel.ERROR, $"ERROR! Problem recognizing output method specified: {commandLineParser.OutputSubcommand.Name}");
                return;
            }

            // Setting up event component
            EventComponent eventComponent = null;
            var            arg            = commandLineParser.InputSubcommand.Argument?.Value;
            var            options        = commandLineParser.InputSubcommand.Options;
            var            queries        = commandLineParser.Queries.ToArray();

            switch (commandLineParser.InputSubcommand.Name)
            {
            case "etw":
                eventComponent = new EtwSession(arg, output, queries);
                break;

            case "etl":
                eventComponent = new EtlFileReader(arg, output, queries);
                break;

            case "winlog":
                eventComponent = new WinlogRealTime(arg, output, queries);
                break;

            case "evtx":
                eventComponent = new EvtxFileReader(arg, output, queries);
                break;

            case "csv":
                eventComponent = new CsvFileReader(arg, output, queries);
                break;

            case "syslog":
                eventComponent = new SyslogFileReader(arg, output, queries);
                break;

            case "syslogserver":
                eventComponent = GetSyslogServer(options, output, queries);
                break;

            default:
                logger.Log(LogLevel.ERROR, $"Problem recognizing input method specified: {commandLineParser.InputSubcommand.Name}. Terminating program...");
                return;
            }
            if (!eventComponent.Start())
            {
                logger.Log(LogLevel.ERROR, "Error starting up. Please review usage and examples. Terminating program...");
                return;
            }

            // Waiting for exit signal
            var exitEvent = new ManualResetEvent(false);

            Console.CancelKeyPress += (sender, eventArgs) =>
            {
                eventArgs.Cancel = false;
                exitEvent.Set();
            };
            exitEvent.WaitOne();
        }
Exemple #7
0
 /// <summary>
 /// Creates a Windows event log for the extender of ServiceExe.
 /// serviceName must be defined.
 /// </summary>
 public static void CreateLog()
 {
     windowsLogger = (WindowsLogger)Log.CreateLogger("Windows");
     windowsLogger.ApplicationName = serviceName;
     WindowsLogger.CreateLog(serviceName, serviceName);
 }