Example #1
0
 static string DefaultLogDataItemFormatter(LogDataItem logItem)
 {
     return(String.Format("e2\ttime\t{0:s}\turl\t{1}\turlreferrer\t{2}\tuseragent\t{3}\tuserdomain\t{4}",
                          logItem.RequestedUtc,
                          logItem.UrlRequested,
                          logItem.UrlReferrer,
                          logItem.UserAgent,
                          logItem.UserDomain));
 }
Example #2
0
        public bool IsRobot(LogDataItem logDataItem)
        {
            if (Domains.Contains(logDataItem.UserDomain.Trim()) ||
                IsRobotUserAgent(logDataItem.UserAgent.Trim()))
            {
                return true;
            }

            return false;
        }
Example #3
0
        void WriteLogDataItem(LogDataItem logItem, LogCategory category, ReaderWriterLock lockObject,
                              LogDataItemFormatter formatter)
        {
            if (logItem == null)
            {
                throw new ArgumentNullException("logItem");
            }

            if (lockObject == null)
            {
                throw new ArgumentNullException("lockObject");
            }

            if (formatter == null)
            {
                throw new ArgumentNullException("formatter");
            }

            try
            {
                //using (Impersonation.Impersonate())
                {
                    lockObject.AcquireWriterLock(TimeSpan.FromMilliseconds(250));

                    using (StreamWriter writer = new StreamWriter(GetLogPath(logItem.RequestedUtc, category), true))
                    {
                        writer.WriteLine(formatter(logItem));
                    }
                }
            }
            catch (Exception e)
            {
                ErrorTrace.Trace(TraceLevel.Error, e);
            }
            finally
            {
                if (lockObject.IsWriterLockHeld)
                {
                    lockObject.ReleaseWriterLock();
                }
            }
        }
Example #4
0
        static LogDataItemCollection ParseLogDataItems(string logText)
        {
            LogDataItemCollection result = new LogDataItemCollection();

            MatchCollection matches = _logDataItemParser.Matches(logText);

            if (matches != null)
            {
                foreach (Match match in matches)
                {
                    LogDataItem item = new LogDataItem();
                    item.RequestedUtc = DateTime.Parse(match.Groups["time"].Value);
                    item.UrlRequested = match.Groups["url"].Value;
                    item.UrlReferrer  = match.Groups["urlreferrer"].Value;
                    item.UserAgent    = match.Groups["useragent"].Value;
                    item.UserDomain   = match.Groups["userdomain"].Value;
                    result.Add(item);
                }
            }

            return(result);
        }
Example #5
0
 void ILoggingDataService.AddCrosspostReferrer(LogDataItem logItem)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker),
                                  new WriterThreadParams <LogDataItem>(logItem, LogCategory.Crosspost,
                                                                       _crosspostLock));
 }
Example #6
0
 void ILoggingDataService.AddAggregatorBugHit(LogDataItem logItem)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker),
                                  new WriterThreadParams <LogDataItem>(logItem, LogCategory.AggregatorBug,
                                                                       _aggregatorBugLock));
 }
Example #7
0
 void ILoggingDataService.AddClickThrough(LogDataItem logItem)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker),
                                  new WriterThreadParams <LogDataItem>(logItem, LogCategory.ClickThrough,
                                                                       _clickThroughLock));
 }
Example #8
0
 void ILoggingDataService.AddReferral(LogDataItem logItem)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker),
                                  new WriterThreadParams <LogDataItem>(logItem, LogCategory.Referrer, _referrerLock));
 }