我要做的是将多个参数传递给Log.Write,而不首先使用换行符转义字符创建它们的长字符串。
这是我目前的职能:
public static void LogPipedEvent(string message)
{
//Split message on double pipe escape "||"
string newmessage = "";
string[] splitMessage = Regex.Split(message, Regex.Escape("||"));
foreach (string line in splitMessage)
{
newmessage += "\r\n" + line;
}
Logger.Write(newmessage, "DebugCategory", 2, 4000, TraceEventType.Information, "Message");
}
它适用于我需要它做的事情,但我想知道是否有更简洁的方法来分解日志的“消息”部分并让每个条目在企业库中获得它自己的行?
答案 0 :(得分:2)
如果您知道您的分隔符为||
而您只需要用新行替换它,则可以使用string.Replace
:
public static void LogPipedEvent(string message)
{
Logger.Write(message.Replace("||", "\r\n"), "DebugCategory", 2, 4000, TraceEventType.Information, "Message");
}
答案 1 :(得分:0)
如果您有要记录的信息集合,则可以考虑使用LogEntry的ExendedProperties。 ExtendedProperties是键/值对的字典。
因此,您可以传入字符串和字典,并使用格式化程序以所需的格式输出消息(输出键/值可以在其自己的行上),而不是传入管道分隔的字符串。
我不确定这是否适合您正在处理的数据类型,但这是一种“企业图书馆”方式。
答案 2 :(得分:0)
你可以改变你的签名吗?如果你这样做了:
public static void LogMessage(params string[] messages)
{
string message = messages.Join("\r\n");
Logger.Write(newmessage, "DebugCategory", 2, 4000, TraceEventType.Information, "Message"););
}
然后你可以这样称呼它:
LogMessage("Message 1", "Message 2", "Message 3");