我创建了一个控制台应用程序,将数据从Excel表格转移到数据库。我需要在其中进行日志记录。
我应该怎么做呢?因为我完全不知道该如何去做。
我创建了一个控制台应用程序,将数据从Excel表格转移到数据库。我需要在其中进行日志记录。
我应该怎么做呢?因为我完全不知道该如何去做。
如果您只想将文本写入文件作为日志,可以执行以下操作:
string strLogText = "Some details you want to log.";
// Create a writer and open the file:
StreamWriter log;
if (!File.Exists("logfile.txt"))
{
log = new StreamWriter("logfile.txt");
}
else
{
log = File.AppendText("logfile.txt");
}
// Write to the file:
log.WriteLine(DateTime.Now);
log.WriteLine(strLogText);
log.WriteLine();
// Close the stream:
log.Close();
这段代码的来源是这篇文章。
这里提供了StreamWriter Class的一些文档说明。
如果你需要更多功能,你可以像其他人建议的那样,查看Log4Net。
File.AppendText
这行代码即使文件不存在也能正常工作 - 我觉得你不需要检查它,这是不必要的。我在VS2013中亲自测试过,我删除了日志文件并使用AppendText
运行了代码,它按预期创建了带有日志的文件。 - TKoL我需要对其进行日志记录....
您是指希望将日志记录添加到应用程序中,还是希望让人们登录
?
要将事物记录到文件中,Log4Net可以使这变得更加容易。如果您不想依赖第三方工具,则可以执行类似以下操作:
Trace.Listeners.Clear();
if (options.Verbose)
{
var ctl = new ConsoleTraceListener(false) { TraceOutputOptions = TraceOptions.DateTime };
Trace.Listeners.Add(ctl);
}
if (options.Log)
{
var logFileFs = new FileStream("my.log", FileMode.Append);
var twtl = new TextWriterTraceListener(logFileFs)
{ TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime };
Trace.Listeners.Add(twtl);
}
Trace.AutoFlush = true;
Trace.WriteLine(DateTime.Now.ToString(CultureInfo.InvariantCulture) + " My App Started");
Trace.WriteLine(DateTime.Now.ToString(CultureInfo.InvariantCulture) + " My App Started");