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)); }
public bool IsRobot(LogDataItem logDataItem) { if (Domains.Contains(logDataItem.UserDomain.Trim()) || IsRobotUserAgent(logDataItem.UserAgent.Trim())) { return true; } return false; }
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(); } } }
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); }
void ILoggingDataService.AddCrosspostReferrer(LogDataItem logItem) { ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker), new WriterThreadParams <LogDataItem>(logItem, LogCategory.Crosspost, _crosspostLock)); }
void ILoggingDataService.AddAggregatorBugHit(LogDataItem logItem) { ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker), new WriterThreadParams <LogDataItem>(logItem, LogCategory.AggregatorBug, _aggregatorBugLock)); }
void ILoggingDataService.AddClickThrough(LogDataItem logItem) { ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker), new WriterThreadParams <LogDataItem>(logItem, LogCategory.ClickThrough, _clickThroughLock)); }
void ILoggingDataService.AddReferral(LogDataItem logItem) { ThreadPool.QueueUserWorkItem(new WaitCallback(AddLogDataItemWorker), new WriterThreadParams <LogDataItem>(logItem, LogCategory.Referrer, _referrerLock)); }