docs: public int length() throws InternalLogException, LogIncompatibleException
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "length");
  
          if (!_compatible)
          {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "length", "LogIncompatibleException");
              throw new LogIncompatibleException();
          }
  
          if (_status == STATUS_INVALID)
          {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "length", "LogHeaderInvalid - throwing InternalLogException");
              throw new InternalLogException(null);
          }
  
          // Calculate the length based on fixed and variable length data.
          // Include the 4 bytes that are used to store the header's length
          final int length = RLSUtils.INT_SIZE +
                             headerSize() +
                             _serverNameBytes.length +
                             _serviceNameBytes.length +
                             _logNameBytes.length +
                             (_variableFieldData != null ? _variableFieldData.length : 0) + // "VARFIELD" included in HEADER_SIZE even if _variableFieldData is null 
                             (_serviceData != null ? _serviceData.length : 0);
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "length", new Integer(length));
          return length;
      }