private void WriteStartHeader(String source, TraceEventType eventType, int id, TraceEventCache eventCache) {
InternalWrite(fixedHeader);
InternalWrite("<EventID>");
InternalWrite(((uint)id).ToString(CultureInfo.InvariantCulture));
InternalWrite("</EventID>");
InternalWrite("<Type>3</Type>");
InternalWrite("<SubType Name=\"");
InternalWrite(eventType.ToString());
InternalWrite("\">0</SubType>");
InternalWrite("<Level>");
int sev = (int)eventType;
if (sev > 255)
sev = 255;
if (sev < 0)
sev = 0;
InternalWrite(sev.ToString(CultureInfo.InvariantCulture));
InternalWrite("</Level>");
InternalWrite("<TimeCreated SystemTime=\"");
if (eventCache != null)
InternalWrite(eventCache.DateTime.ToString("o", CultureInfo.InvariantCulture));
else
InternalWrite(DateTime.Now.ToString("o", CultureInfo.InvariantCulture));
InternalWrite("\" />");
InternalWrite("<Source Name=\"");
WriteEscaped(source);
InternalWrite("\" />");
InternalWrite("<Correlation ActivityID=\"");
if (eventCache != null)
InternalWrite(eventCache.ActivityId.ToString("B"));
else
InternalWrite(Guid.Empty.ToString("B"));
}