【问题标题】:How to log a datetime and on daily base如何记录日期时间和每日基础
【发布时间】:2014-07-24 08:15:44
【问题描述】:
我必须开发一个每天记录的文件,并在日志文件内部显示每个日志的日期和时间。
到目前为止,我使用此代码创建了一个日志文件:
Stream iStream = File.Open("C:\\TEST\\logfiles\\Test_Plugin.txt", FileMode.Append);
StreamWriter iWriter = new StreamWriter(iStream);
我确实得到了一个日志文件,但没有日期时间,输出只是一堆相互下方的消息。
我也想每天记录这些。该插件将在服务器上运行。
谢谢
【问题讨论】:
-
您为什么不能直接将DateTime.Now.ToString() 写入您的日志文件?关于你的第二个问题:看this question。我还建议您查看特定的日志记录框架,例如 log4net。
标签:
c#
sql-server
visual-studio
logging
【解决方案1】:
为什么不首先编写一个可以进行日志记录的静态方法,以便将逻辑封装在一个地方,如下所示:
public static class Logger
{
public static void Log(string format, params object[] args)
{
using (var streamWriter = new StreamWriter("C:\\TEST\\logfiles\\Test_Plugin.txt", true))
{
streamWriter.WriteLine("{0}: {1}", DateTime.Now.ToString("dd MMM yyyy HH:mm:ss"), string.Format(format, args));
}
}
}
然后你可以在你的代码中这样调用它:
Logger.Log("hello this is a test");
它还将支持字符串格式表达式,例如:
Logger.Log("a: {0} b: {1} c:{2}", "a", "bb", "ccc");