public virtual void Send(ILogglyAppenderConfig config, string message) { int maxRetryAllowed = 5; int totalRetries = 0; string _tag = config.Tag; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(config.UserAgent)) { _tag = _tag + "," + config.UserAgent; } while (totalRetries < maxRetryAllowed) { totalRetries++; try { var bytes = Encoding.UTF8.GetBytes(message); var webRequest = CreateWebRequest(config, _tag); using (var dataStream = webRequest.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var webResponse = webRequest.GetResponse(); webResponse.Close(); break; } catch { } } }
public virtual void Send(ILogglyAppenderConfig config, string message) { int maxRetryAllowed = 5; int totalRetries = 0; string _tag = config.Tag; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(config.UserAgent)) { _tag = _tag + "," + config.UserAgent; } while (totalRetries < maxRetryAllowed) { totalRetries++; try { var bytes = Encoding.UTF8.GetBytes(message); var webRequest = CreateWebRequest(config, _tag); using (var dataStream = webRequest.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var webResponse = webRequest.GetResponse(); webResponse.Close(); break; } catch { } } }
public virtual void Send(ILogglyAppenderConfig config, string message) { int maxRetryAllowed = 5; int totalRetries = 0; DateTime startTime = DateTime.UtcNow; DateTime endTime = DateTime.UtcNow; string _tag = config.Tag; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(config.UserAgent)) { _tag = _tag + "," + config.UserAgent; } while (totalRetries < maxRetryAllowed) { totalRetries++; if (totalRetries > 1) { grossRetryCount++; } try { var bytes = Encoding.UTF8.GetBytes(message); var webRequest = CreateWebRequest(config, _tag); using (var dataStream = webRequest.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var webResponse = webRequest.GetResponse(); webResponse.Close(); // Some calculation to count event per sec, total throughput in kb successLogCount++; endTime = DateTime.UtcNow; totalTimeInSeconds = (float)((endTime - startTime).TotalSeconds); eventsPerSeconds = successLogCount / totalTimeInSeconds; totalThroughPutInKB = totalThroughPutInKB + ((message.Length * 2) / 1024f); break; } catch { failureLogCount++; if (totalRetries == maxRetryAllowed) { logLost++; } } } }
protected virtual HttpWebRequest CreateWebRequest(ILogglyAppenderConfig config, string inputKey) { var url = String.Concat(config.RootUrl, inputKey); var request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ReadWriteTimeout = request.Timeout = config.TimeoutInSeconds * 1000; request.UserAgent = config.UserAgent; request.KeepAlive = true; request.ContentType = "application/json"; return request; }
protected virtual HttpWebRequest CreateWebRequest(ILogglyAppenderConfig config, string inputKey) { var url = String.Concat(config.RootUrl, inputKey); var request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ReadWriteTimeout = request.Timeout = config.TimeoutInSeconds * 1000; request.UserAgent = config.UserAgent; request.KeepAlive = true; request.ContentType = "application/json"; return(request); }
public virtual void Send(ILogglyAppenderConfig config, string inputKey, string message) { var bytes = Encoding.UTF8.GetBytes(message); var request = CreateWebRequest(config, string.IsNullOrWhiteSpace(inputKey) ? config.InputKey : inputKey); using (var dataStream = request.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var response = request.GetResponse(); response.Close(); }
public void storeInputLogs(ILogglyAppenderConfig config, string message, bool isBulk) { if (message == String.Empty) { return; } int numberOfLogsToBeRemoved = (arrBufferedMessage.Count + 1) - config.BufferSize; if (numberOfLogsToBeRemoved > 0) { arrBufferedMessage.RemoveRange(0, numberOfLogsToBeRemoved); } arrBufferedMessage.Add(message); }
public void PostMessage(string msg, ILogglyAppenderConfig config) { this._config = config; if (!IsRunning) { WorkerThread.Start(); IsRunning = true; } if (!Queue.TryAdd(msg)) { Queue.Take(); Queue.TryAdd(msg); } }
public void storeLogs(string message, ILogglyAppenderConfig config, bool isBulk) { List <string> messageBulk = new List <string>(); if (isBulk) { messageBulk = message.Split('\n').ToList(); _storeLogsInBuffer.storeBulkLogs(config, messageBulk, isBulk); } else { _storeLogsInBuffer.storeInputLogs(config, message, isBulk); } }
public void PostMessage(string msg, ILogglyAppenderConfig config) { this._config = config; if (!IsRunning) { WorkerThread.Start(); IsRunning = true; } if (!Queue.TryAdd(msg)) { Queue.Take(); Queue.TryAdd(msg); } }
public virtual void Send(ILogglyAppenderConfig config, string inputKey, string message) { var bytes = Encoding.UTF8.GetBytes(message); var request = CreateWebRequest(config, string.IsNullOrWhiteSpace(inputKey) ? config.InputKey : inputKey); using (var dataStream = request.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var response = request.GetResponse(); response.Close(); }
public void storeBulkLogs(ILogglyAppenderConfig config, List <string> logs, bool isBulk) { if (logs.Count == 0) { return; } int numberOfLogsToBeRemoved = (arrBufferedMessage.Count + logs.Count) - config.BufferSize; if (numberOfLogsToBeRemoved > 0) { arrBufferedMessage.RemoveRange(0, numberOfLogsToBeRemoved); } arrBufferedMessage = logs.Concat(arrBufferedMessage).ToList(); }
protected virtual HttpWebRequest CreateWebRequest(ILogglyAppenderConfig config, string tag) { var url = String.Concat(config.RootUrl, config.LogMode, config.InputKey); //adding userAgent as tag in the log url = String.Concat(url, "/tag/" + tag); HttpWebRequest request = null; request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ReadWriteTimeout = request.Timeout = config.TimeoutInSeconds * 1000; request.UserAgent = config.UserAgent; request.KeepAlive = true; request.ContentType = "application/json"; return(request); }
protected virtual HttpWebRequest CreateWebRequest(ILogglyAppenderConfig config, string tag) { var url = String.Concat(config.RootUrl, config.InputKey); //adding userAgent as tag in the log url = String.Concat(url, "/tag/" + tag); var request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ReadWriteTimeout = request.Timeout = config.TimeoutInSeconds * 1000; request.UserAgent = config.UserAgent; request.KeepAlive = true; request.ContentType = "application/json"; //adding x-forwarded-for header request.Headers.Add("x-forwarded-for", GetIPAddressOfMachine()); return(request); }
public void sendBufferedLogsToLoggly(ILogglyAppenderConfig config, bool isBulk) { if (LogglyStoreLogsInBuffer.arrBufferedMessage.Count > 0) { int bulkModeBunch = 100; int inputModeBunch = 1; int logInBunch = isBulk ? bulkModeBunch : inputModeBunch; arrayMessage = LogglyStoreLogsInBuffer.arrBufferedMessage.Take(logInBunch).ToList(); message = isBulk ? String.Join(System.Environment.NewLine, arrayMessage) : arrayMessage[0]; try { Client.Send(config, message, isBulk); var tempList = LogglyStoreLogsInBuffer.arrBufferedMessage; if (LogglyStoreLogsInBuffer.arrBufferedMessage.Count < arrayMessage.Count) { LogglyStoreLogsInBuffer.arrBufferedMessage.Clear(); } else { tempList.RemoveRange(0, arrayMessage.Count); } LogglyStoreLogsInBuffer.arrBufferedMessage = tempList; } catch (WebException e) { var response = (HttpWebResponse)e.Response; if (response != null && response.StatusCode == HttpStatusCode.Forbidden) { _logClient.setTokenValid(false); Console.WriteLine("Loggly error: {0}", e.Message); return; } } finally { arrayMessage.Clear(); arrayMessage = null; GC.Collect(); } } }
public virtual void Send(ILogglyAppenderConfig config, string inputKey, string userAgent, string tag, string message) { string _tag = string.IsNullOrWhiteSpace(tag) ? config.Tag : tag; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(userAgent)) { _tag = _tag + "," + userAgent; } var bytes = Encoding.UTF8.GetBytes(message); var request = CreateWebRequest(config, _tag); using (var dataStream = request.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var response = request.GetResponse(); response.Close(); }
public void Send(ILogglyAppenderConfig config, string message, bool isbulk) { if (isValidToken) { string _tag = config.Tag; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(config.UserAgent)) { _tag = _tag + "," + config.UserAgent; } var bytes = Encoding.UTF8.GetBytes(message); var webRequest = CreateWebRequest(config, _tag); using (var dataStream = webRequest.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } var webResponse = (HttpWebResponse)webRequest.GetResponse(); webResponse.Close(); } }
public virtual void AppendAdditionalLoggingInformation(ILogglyAppenderConfig config, LoggingEvent loggingEvent) { Config = config; }
public virtual void Send(ILogglyAppenderConfig config, string message) { int maxRetryAllowed = 5; int totalRetries = 0; string _tag = config.Tag; bool isBulk = config.LogMode.Contains("bulk"); HttpWebResponse webResponse; HttpWebRequest webRequest; //keeping userAgent backward compatible if (!string.IsNullOrWhiteSpace(config.UserAgent)) { _tag = _tag + "," + config.UserAgent; } while (isValidToken && totalRetries < maxRetryAllowed) { totalRetries++; try { var bytes = Encoding.UTF8.GetBytes(message); webRequest = CreateWebRequest(config, _tag); using (var dataStream = webRequest.GetRequestStream()) { dataStream.Write(bytes, 0, bytes.Length); dataStream.Flush(); dataStream.Close(); } webResponse = (HttpWebResponse)webRequest.GetResponse(); webResponse.Close(); break; } catch (WebException e) { if (totalRetries == 1) { var response = (HttpWebResponse)e.Response; if (response != null) { // Check for bad token if (response.StatusCode == HttpStatusCode.Forbidden) { // set valid token flag to false setTokenValid(false); } else { // store logs to buffer storeLogs(message, config, isBulk); } printErrorMessage(e.Message); } else { // store logs to buffer storeLogs(message, config, isBulk); } } } finally { webRequest = null; webResponse = null; GC.Collect(); } } }
public virtual void AppendAdditionalLoggingInformation(ILogglyAppenderConfig config, LoggingEvent loggingEvent) { this._config = config; }