将 \t、换行符和回车符 return 写入来自 windows 服务的 windows 事件日志

Writing \t, line feed and carriage return to windows event log from a windows service

我有一个 windows 内置在 .NET 和 VB.NET 中的服务。我正在将日志写入 windows 事件日志,但我无法向其写入 \t、换行和回车 return。

我有如下字符串:

Dim myMessage As String = "Parameters read: \n\n"
myMessage += "\t\tParamA: " + paramA
myMessage += "\t\tParamB: " + paramB

日志已写入事件日志,但未应用 \t 和 \n。它显示为单行字符串:

"Parameters read: \n\n\t\tParamA: 2\t\tParamB: 4"

我试过用 %t 代替 \t 和 %n 代替 \n 但它不起作用:

Dim myMessage As String = "Parameters read: %n%n"
myMessage += "%t%tParamA: " + paramA
myMessage += "%t%tParamB: " + paramB

要写入事件日志,我会执行以下操作:

System.Diagnostics.EventLog.WriteEntry(myMessage, System.Diagnostics.EventLogEntryType.Information, 1)

有什么想法吗?

您应该使用 ControlChars class 及其 TabCrLfCrLf 属性。它们是 VB.NET 运行时的一部分,特别是因为 VB 不像 C# 那样支持 C 风格的转义序列。