Exemplo n.º 1
0
        /// <summary>
        /// Reads the exception fields from the specified log file reader.
        /// </summary>
        /// <param name="reader">The log file reader to read from.</param>
        /// <returns>The exception data.</returns>
        internal static FieldLogException Read(FieldLogFileReader reader)
        {
            FieldLogException ex = new FieldLogException();

            ex.Type = reader.ReadString();
            if (reader.FormatVersion >= 2)
            {
                ex.TypeModule = reader.ReadString();
                ex.Token      = reader.ReadInt32();
            }
            ex.Message = reader.ReadString();
            ex.Code    = reader.ReadInt32();
            ex.Data    = reader.ReadString();
            int frameCount = reader.ReadInt32();

            ex.StackFrames = new FieldLogStackFrame[frameCount];
            for (int i = 0; i < frameCount; i++)
            {
                ex.StackFrames[i] = FieldLogStackFrame.Read(reader);
            }
            int innerCount = reader.ReadInt32();

            ex.InnerExceptions = new FieldLogException[innerCount];
            for (int i = 0; i < innerCount; i++)
            {
                ex.InnerExceptions[i] = FieldLogException.Read(reader);
            }
            return(ex);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Reads the common log item fields from the specified log file reader.
 /// </summary>
 /// <param name="reader">The log file reader to read from.</param>
 protected void ReadBaseData(FieldLogFileReader reader)
 {
     LogItemSourceFileName = reader.FileName;
     FileFormatVersion     = reader.FormatVersion;
     Time         = new DateTime(reader.ReadInt64(), DateTimeKind.Utc);
     EventCounter = reader.ReadInt32();
     Priority     = (FieldLogPriority)reader.ReadByte();
     SessionId    = new Guid(reader.ReadBytes(16));
     ThreadId     = reader.ReadInt32();
     if (reader.FormatVersion >= 2)
     {
         WebRequestId = reader.ReadUInt32();
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Reads the log item fields from the specified log file reader.
        /// </summary>
        /// <param name="reader">The log file reader to read from.</param>
        /// <param name="isRepeated">true if the log item is repeated from a previous file, false if it is written for the first time.</param>
        /// <returns>The read log item.</returns>
        internal static FieldLogScopeItem Read(FieldLogFileReader reader, bool isRepeated)
        {
            FieldLogScopeItem item = new FieldLogScopeItem();

            item.ReadBaseData(reader);
            item.IsRepeated = isRepeated;
            item.Type       = (FieldLogScopeType)reader.ReadByte();
            item.Level      = reader.ReadInt32();
            item.Name       = reader.ReadString();

            if (item.Type == FieldLogScopeType.ThreadStart)
            {
                byte flags = reader.ReadByte();
                item.IsBackgroundThread = (flags & 1) != 0;
                item.IsPoolThread       = (flags & 2) != 0;
            }
            if (item.Type == FieldLogScopeType.LogStart)
            {
                item.EnvironmentData = FieldLogEventEnvironment.Read(reader);
            }
            if (item.Type == FieldLogScopeType.WebRequestStart && reader.FormatVersion >= 2)
            {
                item.WebRequestData = FieldLogWebRequestData.Read(reader);
            }
            return(item);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Reads the stack frame fields from the specified log file reader.
        /// </summary>
        /// <param name="reader">The log file reader to read from.</param>
        /// <returns>The stack frame data.</returns>
        internal static FieldLogStackFrame Read(FieldLogFileReader reader)
        {
            FieldLogStackFrame frame = new FieldLogStackFrame();

            frame.Module = reader.ReadString();
            if (reader.FormatVersion >= 2)
            {
                frame.Token    = reader.ReadInt32();
                frame.ILOffset = reader.ReadInt32();
            }
            frame.TypeName        = reader.ReadString();
            frame.MethodName      = reader.ReadString();
            frame.MethodSignature = reader.ReadString();
            frame.FileName        = reader.ReadString();
            frame.Line            = reader.ReadInt32();
            frame.Column          = reader.ReadInt32();
            return(frame);
        }
        /// <summary>
        /// Reads the FieldLogEventEnvironment data from a log file reader.
        /// </summary>
        /// <param name="reader">Log file reader.</param>
        /// <returns>The environment data.</returns>
        internal static FieldLogEventEnvironment Read(FieldLogFileReader reader)
        {
            FieldLogEventEnvironment env = new FieldLogEventEnvironment();

            env.OSType             = (OSType)reader.ReadByte();
            env.OSVersion          = (OSVersion)reader.ReadByte();
            env.OSEdition          = (OSEdition)reader.ReadByte();
            env.OSServicePack      = reader.ReadString();
            env.OSBuild            = reader.ReadInt32();
            env.OSServicePackBuild = reader.ReadInt32();
            env.OSProductName      = reader.ReadString();
            env.OSLanguage         = reader.ReadString();
            env.OSLastBootTime     = new DateTime(reader.ReadInt64(), DateTimeKind.Utc);
            env.AppCompatLayer     = reader.ReadString();
            env.ClrType            = reader.ReadString();
            env.MouseButtons       = reader.ReadByte();
            env.MaxTouchPoints     = reader.ReadByte();
            env.ScreenDpi          = reader.ReadUInt16();

            env.CultureName          = reader.ReadString();
            env.CurrentDirectory     = reader.ReadString();
            env.EnvironmentVariables = reader.ReadString();
            env.CpuCount             = reader.ReadUInt16();
            env.HostName             = reader.ReadString();
            env.UserName             = reader.ReadString();
            env.ExecutablePath       = reader.ReadString();
            env.CommandLine          = reader.ReadString();
            env.AppVersion           = reader.ReadString();
            if (reader.FormatVersion >= 2)
            {
                env.AppAsmConfiguration = reader.ReadString();
            }
            env.ClrVersion                     = reader.ReadString();
            env.LocalTimeZoneOffset            = TimeSpan.FromMinutes(reader.ReadInt16());
            env.ProcessMemory                  = reader.ReadInt64();
            env.PeakProcessMemory              = reader.ReadInt64();
            env.TotalMemory                    = reader.ReadInt64();
            env.AvailableMemory                = reader.ReadInt64();
            env.ProcessId                      = reader.ReadInt32();
            env.PrimaryScreenWidth             = reader.ReadUInt16();
            env.PrimaryScreenHeight            = reader.ReadUInt16();
            env.PrimaryScreenBitsPerPixel      = reader.ReadByte();
            env.PrimaryScreenWorkingAreaLeft   = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaTop    = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaWidth  = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaHeight = reader.ReadUInt16();
            env.ScreenCount                    = reader.ReadByte();

            byte flags = reader.ReadByte();

            env.OSIs64Bit        = (flags & 1) != 0;
            env.OSIsAppServer    = (flags & 2) != 0;
            env.OSIsFailSafeBoot = (flags & 4) != 0;
            env.IsInteractive    = (flags & 8) != 0;
            env.IsProcess64Bit   = (flags & 16) != 0;
            env.IsAdministrator  = (flags & 32) != 0;

            // Check if the environment is actually empty
            if (env.CpuCount == 0)
            {
                return(FieldLogEventEnvironment.Empty);
            }

            return(env);
        }
        /// <summary>
        /// Reads the FieldLogEventEnvironment data from a log file reader.
        /// </summary>
        /// <param name="reader">Log file reader.</param>
        /// <returns>The environment data.</returns>
        internal static FieldLogEventEnvironment Read(FieldLogFileReader reader)
        {
            FieldLogEventEnvironment env = new FieldLogEventEnvironment();
            env.OSType = (OSType)reader.ReadByte();
            env.OSVersion = (OSVersion)reader.ReadByte();
            env.OSEdition = (OSEdition)reader.ReadByte();
            env.OSServicePack = reader.ReadString();
            env.OSBuild = reader.ReadInt32();
            env.OSServicePackBuild = reader.ReadInt32();
            env.OSProductName = reader.ReadString();
            env.OSLanguage = reader.ReadString();
            env.OSLastBootTime = new DateTime(reader.ReadInt64(), DateTimeKind.Utc);
            env.AppCompatLayer = reader.ReadString();
            env.ClrType = reader.ReadString();
            env.MouseButtons = reader.ReadByte();
            env.MaxTouchPoints = reader.ReadByte();
            env.ScreenDpi = reader.ReadUInt16();

            env.CultureName = reader.ReadString();
            env.CurrentDirectory = reader.ReadString();
            env.EnvironmentVariables = reader.ReadString();
            env.CpuCount = reader.ReadUInt16();
            env.HostName = reader.ReadString();
            env.UserName = reader.ReadString();
            env.ExecutablePath = reader.ReadString();
            env.CommandLine = reader.ReadString();
            env.AppVersion = reader.ReadString();
            if (reader.FormatVersion >= 2)
            {
                env.AppAsmConfiguration = reader.ReadString();
            }
            env.ClrVersion = reader.ReadString();
            env.LocalTimeZoneOffset = TimeSpan.FromMinutes(reader.ReadInt16());
            env.ProcessMemory = reader.ReadInt64();
            env.PeakProcessMemory = reader.ReadInt64();
            env.TotalMemory = reader.ReadInt64();
            env.AvailableMemory = reader.ReadInt64();
            env.ProcessId = reader.ReadInt32();
            env.PrimaryScreenWidth = reader.ReadUInt16();
            env.PrimaryScreenHeight = reader.ReadUInt16();
            env.PrimaryScreenBitsPerPixel = reader.ReadByte();
            env.PrimaryScreenWorkingAreaLeft = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaTop = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaWidth = reader.ReadUInt16();
            env.PrimaryScreenWorkingAreaHeight = reader.ReadUInt16();
            env.ScreenCount = reader.ReadByte();

            byte flags = reader.ReadByte();
            env.OSIs64Bit = (flags & 1) != 0;
            env.OSIsAppServer = (flags & 2) != 0;
            env.OSIsFailSafeBoot = (flags & 4) != 0;
            env.IsInteractive = (flags & 8) != 0;
            env.IsProcess64Bit = (flags & 16) != 0;
            env.IsAdministrator = (flags & 32) != 0;

            // Check if the environment is actually empty
            if (env.CpuCount == 0)
                return FieldLogEventEnvironment.Empty;

            return env;
        }
Exemplo n.º 7
0
 /// <summary>
 /// Reads the stack frame fields from the specified log file reader.
 /// </summary>
 /// <param name="reader">The log file reader to read from.</param>
 /// <returns>The stack frame data.</returns>
 internal static FieldLogStackFrame Read(FieldLogFileReader reader)
 {
     FieldLogStackFrame frame = new FieldLogStackFrame();
     frame.Module = reader.ReadString();
     if (reader.FormatVersion >= 2)
     {
         frame.Token = reader.ReadInt32();
         frame.ILOffset = reader.ReadInt32();
     }
     frame.TypeName = reader.ReadString();
     frame.MethodName = reader.ReadString();
     frame.MethodSignature = reader.ReadString();
     frame.FileName = reader.ReadString();
     frame.Line = reader.ReadInt32();
     frame.Column = reader.ReadInt32();
     return frame;
 }
Exemplo n.º 8
0
 /// <summary>
 /// Reads the exception fields from the specified log file reader.
 /// </summary>
 /// <param name="reader">The log file reader to read from.</param>
 /// <returns>The exception data.</returns>
 internal static FieldLogException Read(FieldLogFileReader reader)
 {
     FieldLogException ex = new FieldLogException();
     ex.Type = reader.ReadString();
     if (reader.FormatVersion >= 2)
     {
         ex.TypeModule = reader.ReadString();
         ex.Token = reader.ReadInt32();
     }
     ex.Message = reader.ReadString();
     ex.Code = reader.ReadInt32();
     ex.Data = reader.ReadString();
     int frameCount = reader.ReadInt32();
     ex.StackFrames = new FieldLogStackFrame[frameCount];
     for (int i = 0; i < frameCount; i++)
     {
         ex.StackFrames[i] = FieldLogStackFrame.Read(reader);
     }
     int innerCount = reader.ReadInt32();
     ex.InnerExceptions = new FieldLogException[innerCount];
     for (int i = 0; i < innerCount; i++)
     {
         ex.InnerExceptions[i] = FieldLogException.Read(reader);
     }
     return ex;
 }
Exemplo n.º 9
0
        /// <summary>
        /// Reads the log item fields from the specified log file reader.
        /// </summary>
        /// <param name="reader">The log file reader to read from.</param>
        /// <param name="isRepeated">true if the log item is repeated from a previous file, false if it is written for the first time.</param>
        /// <returns>The read log item.</returns>
        internal static FieldLogScopeItem Read(FieldLogFileReader reader, bool isRepeated)
        {
            FieldLogScopeItem item = new FieldLogScopeItem();
            item.ReadBaseData(reader);
            item.IsRepeated = isRepeated;
            item.Type = (FieldLogScopeType)reader.ReadByte();
            item.Level = reader.ReadInt32();
            item.Name = reader.ReadString();

            if (item.Type == FieldLogScopeType.ThreadStart)
            {
                byte flags = reader.ReadByte();
                item.IsBackgroundThread = (flags & 1) != 0;
                item.IsPoolThread = (flags & 2) != 0;
            }
            if (item.Type == FieldLogScopeType.LogStart)
            {
                item.EnvironmentData = FieldLogEventEnvironment.Read(reader);
            }
            if (item.Type == FieldLogScopeType.WebRequestStart && reader.FormatVersion >= 2)
            {
                item.WebRequestData = FieldLogWebRequestData.Read(reader);
            }
            return item;
        }
Exemplo n.º 10
0
 /// <summary>
 /// Reads the common log item fields from the specified log file reader.
 /// </summary>
 /// <param name="reader">The log file reader to read from.</param>
 protected void ReadBaseData(FieldLogFileReader reader)
 {
     LogItemSourceFileName = reader.FileName;
     FileFormatVersion = reader.FormatVersion;
     Time = new DateTime(reader.ReadInt64(), DateTimeKind.Utc);
     EventCounter = reader.ReadInt32();
     Priority = (FieldLogPriority)reader.ReadByte();
     SessionId = new Guid(reader.ReadBytes(16));
     ThreadId = reader.ReadInt32();
     if (reader.FormatVersion >= 2)
     {
         WebRequestId = reader.ReadUInt32();
     }
 }