Beispiel #1
0
        protected override void Write(LogEventInfo logEvent)
        {
            try
            {
                var logEventProperties = logEvent.CleanCallerData().Properties;

                var fieldNameToUseAsDataType = GetFieldNameToUseAsDateType(logEventProperties);

                // In case we have NewLine LogzIO may translate it as 2 different messages
                var message = GetFilteredMessage(logEvent).Replace(Environment.NewLine, " ");

                var messageToSend = new LogzIOLogEventInfo(LogzAccountToken, message, DateTime.UtcNow, HostName, logEvent.Level, logEvent.Exception)
                {
                    Type    = fieldNameToUseAsDataType ?? "json",
                    Details = logEventProperties
                };

                var buffer = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(messageToSend, Formatting.None, mJsonSerializerSettings) + "\n");
                if (mClient.Send(buffer, buffer.Length, SocketFlags.None) == 0)
                {
                    InternalLogger.Error("Connection Error - 0 bytes transfered to LogzIo");
                }
            }
            catch (Exception ex)
            {
                InternalLogger.Error("Error while writing to LogzIO Target {0}", ex);
            }
        }