从控制台应用程序中记录日志

5

我创建了一个控制台应用程序,将数据从Excel表格转移到数据库。我需要在其中进行日志记录。

我应该怎么做呢?因为我完全不知道该如何去做。


这可能对您有帮助:http://stackoverflow.com/questions/3475861/logger-application-for-c-sharp-console-application - Usman
似乎你是新来的。通过点击每个答案旁边的复选标记,您可以“接受”最佳答案来回答您的问题。这就是人们帮助他人得到奖励的方式。 - Chimera
4个回答

16

如果您只想将文本写入文件作为日志,可以执行以下操作:

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


1
你知道吗,我认为File.AppendText这行代码即使文件不存在也能正常工作 - 我觉得你不需要检查它,这是不必要的。我在VS2013中亲自测试过,我删除了日志文件并使用AppendText运行了代码,它按预期创建了带有日志的文件。 - TKoL

7

我需要对其进行日志记录....

您是指希望将日志记录添加到应用程序中,还是希望让人们登录

要将事物记录到文件中,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");

应该将其制作成一个函数,接受您的消息和可能的日志级别,这样您所有编写的日志消息看起来都是统一的。
如果您不需要那么多功能,可以直接写入文件流。

2

如果我想使用自己的日志记录,该怎么做? - user1746174
请参考此链接:https://dev59.com/53I-5IYBdhLWcg3wpqMK - Peru
我想实现自己的日志记录器?那我该怎么做呢? - user1746174
如果您想将某些内容记录到您刚刚转移Excel数据的同一数据库中,您可以使用相同的连接在日志表上运行INSERT查询(如果您没有,则可以创建一个)。 - CptSupermrkt
谷歌一下,你会得到很多选项!https://dev59.com/w3VC5IYBdhLWcg3w51ry - Peru

1

如果可以使用第三方产品,建议选择log4net。它是一个针对.NET的优秀日志框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接