gpt4 book ai didi

c# - 具有 String.Format 功能的日志记录方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:45 24 4
gpt4 key购买 nike

我有通用的 Log 方法,可以将条目写入日志文件、事件日志等。

public static void Log(string logEntry)
{
// Write DateTime and logEntry to Log File, Event Log, etc.
}

我使用以下方法创建了重载以提供 String.Format() 功能:

public static void Log(params object[] logEntry)
{
// Purpose: Overload Log method to provide String.Format() functionality
// with first parameter being Format string.
// Example: Log("[{0:yyyy-MM-dd}] Name: {1}, Value: {2:#,##0.00}", DateTime.Now, "Blah, Blah, Blah", 12345.67890)

string formatString = logEntry[0].ToString();

object[] values = new object[logEntry.Length - 1];

for (int i = 1; i < logEntry.Length; i++)
{
values[i - 1] = logEntry[i];
}

Log(String.Format(formatString, values));
}

这没问题,但是有没有更好的方法来引用剩余的数组项以传递给 String.Format() 函数?或者从数组中删除元素 0 的更好方法?

我知道我也可以只使用 Log(String.Format(...,但我提供它是为了更正式的目的。

最佳答案

你可以使用

public void Log(string message, params object[] args)

或者更好的是,使用现有的框架,例如NLog 或 Log4Net,它们具有类似的 API

public void Log(LogLevel level, string message, param object[] args)

public void Log(LogLevel level, Exception exception, string message, param object[] args)

关于c# - 具有 String.Format 功能的日志记录方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com