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);
        }
Exemple #15
0
 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();
            }
        }
Exemple #18
0
 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;
 }