如何在程序执行结束时生成日志文件

时间:2014-08-21 09:10:48

标签: c#

我开发了一个控制台应用程序(使用C#和oracle),它将从数据库中读取一些数据生成Excel工作表并将邮件发送到相应的地址。在我的应用程序中,我生成一个日志文件并在每个步骤中放入日志。当我的应用程序开始运行时,它正在创建日志文件并开始编写日志。我的日志文件名称是:

 logFileName = "XYZ"+ "_" + System.DateTime.Today.Date.Day.ToString() + "." + System.DateTime.Today.Date.Month.ToString() + "." + System.DateTime.Today.Date.Year.ToString() + "" + System.DateTime.Now.Hour.ToString()+ ".txt";

此文件在一小时内生成一次,每次执行它只是覆盖数据。但现在我想为每个执行程序生成单独的日志文件。如果我试图添加文件名(min,sec)并开始每秒开始写日志文件,它会在程序执行过程中生成一个新的日志文件。所以我想在程序执行结束时写入Total log in或终止程序的任何错误。那么我应该在哪里存储初始日志数据,最后我需要编写它。

我知道有一些相关的帖子,但我没有发现与我的关注相关。请帮我找出解决方案。

3 个答案:

答案 0 :(得分:1)

您可以手动进行日志记录,但我建议使用像NLOG这样的日志记录库,它可以开箱即用地支持您的场景,并且经过了充分的测试。

http://nlog-project.org/

答案 1 :(得分:0)

将小时添加到文件名的末尾。这将创建新文件。

您也可以尝试File.Create:

Creating an empty file in C#

using (File.Create(filename)) ;

编辑:您也可以使用stringbuilder来构建日志数据,然后在最后写入文件。

答案 2 :(得分:0)

我会使用log4net之类的日志工具并执行配置以在每次执行时创建日志文件

检查log4net one file per runLog4Net basics with a Console Application (c#)