コード例 #1
0
        public static BaseResultInfo GetLastItem(LOGTYPE logType, string server)
        {
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.GetLastLogItem(logType.ToString(), server);

            return(res);
        }
コード例 #2
0
        public static BaseResultInfo FileToNewDB(string fileName, LOGTYPE logType, bool isUnified)
        {
            SiteLogger.ILogger logger = SiteLogger.LoggingFactory.GetLogger;
            List <string>      file   = LogReader.LogFileReader.ReadFile(fileName);

            if (isUnified)
            {
                file = LogReader.LogFileReader.UnifiedLogLines(file);
            }
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), logType);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.GetLastLogItem(logType.ToString(), null);
            LogItem           last       = res.GetResult <LogItem>();
            int     itemsSentToDB        = items.Count;
            LogItem lastFound            = last == null? null: items.FirstOrDefault(l => l.InsertDate == last.InsertDate);

            if (lastFound == null)
            {
                res = repository.InsertLogItem(items);
            }
            else
            {
                List <LogItem> itemsToSend = items.FindAll(l => l.Index > lastFound.Index);
                itemsSentToDB = itemsToSend.Count;
                res           = repository.InsertLogItem(itemsToSend);
            }
            logger.Debug(string.Format("FILE NAME = {0} , TOTAL ITEMS  = {1} , ITEM TRY INSERT = {2}, TOTAL SUCCESS = {3}, TOTAL FAILD = {4}", fileName, items.Count, itemsSentToDB, res.ReturnValue, itemsSentToDB - res.ReturnValue));
            return(res);
        }
コード例 #3
0
        public void TEST_Insert_WARN_LOG_LIST_TO_DB()
        {
            string            fileName   = "Warn_fleet_20151103.log";
            List <string>     file       = LogReader.LogFileReader.ReadFile(fileName);
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), LOGTYPE.Warn);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items);

            Assert.IsTrue(res != null);
        }
コード例 #4
0
        public void TEST_Insert_JSERROR_LOG_TO_DB()
        {
            string            fileName   = "JSTrace_fleet_20151103.log";
            List <string>     file       = LogReader.LogFileReader.ReadFile(fileName);
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), LOGTYPE.JSError);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items[0]);

            Assert.IsTrue(res != null);
        }
コード例 #5
0
        public void TEST_Insert_ERROR_LOG_LIST_TO_DB()
        {
            string            fileName   = "Error_fleet_20161211.log";
            List <string>     file       = LogReader.LogFileReader.ReadFile(fileName);
            List <string>     newLins    = LogReader.LogFileReader.UnifiedLogLines(file);
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(newLins.ToArray(), LOGTYPE.Error);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items);

            Assert.IsTrue(res != null);
        }
コード例 #6
0
        public void TEST_TEMP()
        {
            string fileName = "Error_fleet_20151109.log";

            fileName = TestDataHelper.GetFullName(fileName);
            List <string>     file       = LogReader.LogFileReader.ReadFile(fileName);
            List <string>     newLins    = LogReader.LogFileReader.UnifiedLogLines(file);
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(newLins.ToArray(), LOGTYPE.Warn);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items);

            Assert.IsTrue(res != null);
        }
コード例 #7
0
        public static BaseResultInfo FileToDB(string fileName, LOGTYPE logType, bool isUnified)
        {
            List <string> file = LogReader.LogFileReader.ReadFile(fileName);

            if (isUnified)
            {
                file = LogReader.LogFileReader.UnifiedLogLines(file);
            }
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), logType);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items);

            return(res);
        }
コード例 #8
0
        public HttpResponseMessage Analyze(LogServiceRequest req)
        {
            _settingsRepo = new SettingsRepository(ActiveModule.ModuleID);

            long   logItemCount = 0;
            string taskId       = req.taskId;
            string logPath      = FileUtils.GetDnnLogPath() + "\\";
            var    p            = new LogAnalyzerHub();

            p.NotifyStart(taskId);

            LogViewModel       vm = new LogViewModel();
            ILogItemRepository repo = new LogItemRepository();
            long totalLogLines = 0, lineIncrement = 0;

            repo.DeleteAllItems(ActiveModule.ModuleID);
            foreach (string logFile in req.files)
            {
                totalLogLines += LogFileParser.GetLineCount(logPath + logFile);
            }
            lineIncrement = Convert.ToInt64(totalLogLines / 100);

            IAnalyzerNotifyer progressNotifyer = new AnalyzerNotifyer(totalLogLines, lineIncrement, taskId, p);

            try
            {
                var analyzer = new LogFileParser(progressNotifyer);

                foreach (string logFile in req.files)
                {
                    var logItems = analyzer.GetEntries(logPath + logFile, "log4net", _settingsRepo.LogAnalyzerRegex);
                    foreach (var li in logItems)
                    {
                        logItemCount++;
                        li.ModuleId = ActiveModule.ModuleID;
                        li.Count    = 1;
                        repo.InsertItem(li);
                    }
                }

                if (logItemCount > 0)
                {
                    // Rollup results and produce report object
                    var reportItems = repo.GetRollupItems(ActiveModule.ModuleID).ToList();
                    vm.ReportedItems = reportItems.GroupBy(r => r.Level, r => r,
                                                           (key, g) => new LogItemCollection {
                        Level = key,
                        Items = g.Take(100).ToList()
                    }
                                                           ).ToList();
                    p.NotifyProgress(taskId, 100, string.Empty);
                }
                else
                {
                    p.NotifyProgress(taskId, -1, "Log files analyzed contain no entries.");
                }
            }
            catch (Exception ex)
            {
                p.NotifyProgress(taskId, -1, "An error occurred analyzing the log: " + ex.Message);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
            finally
            {
                p.NotifyEnd(taskId);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, vm));
        }
コード例 #9
0
        public static BaseResultInfo GetLoginsLength(DateTime start, DateTime?end)
        {
            LogItemRepository repository = new LogItemRepository();

            return(repository.GetLoginsLength(start, end));
        }
コード例 #10
0
        public static BaseResultInfo SearchItems(LogItemRequest request)
        {
            LogItemRepository repository = new LogItemRepository();

            return(repository.SearchItems(request));
        }