从控制台应用程序记录 [关闭]

Posted

技术标签:

【中文标题】从控制台应用程序记录 [关闭]【英文标题】:Logging from a console application [closed] 【发布时间】:2012-10-05 02:34:08 【问题描述】:

我创建了一个控制台应用程序,它从 Excel 工作表传输数据并将其传输到数据库。我需要登录它。

我该怎么办?因为我完全不知道该怎么做。

【问题讨论】:

这可能对你有帮助***.com/questions/3475861/… 看来你是新来的。通过单击每个答案旁边的复选标记,您“接受”最能回答您的问题的答案。这就是人们因帮助他人而获得奖励的方式。 【参考方案1】:

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

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();

此代码的来源来自此article. 这是StreamWriter Class.的一些文档

否则,如果您想要更多的东西,您可以按照其他人的建议进行操作并查看Log4Net.

【讨论】:

你知道,我实际上认为 File.AppendText 行即使文件不存在也可以工作 - 我认为你不必检查,这是不必要的。我自己在 VS2013 中对其进行了测试,我删除了日志文件并仅使用 AppendText 运行代码,并按预期创建了带有日志的文件【参考方案2】:

I require to do logging into it....

您的意思是您希望将日志记录添加到应用程序中,还是希望人们使用log in

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

应该做成一个函数来接收你的消息,也许还有一个日志级别,这样你就可以对所有书面日志消息有一个统一的外观。

如果您不需要那么多功能,您可以直接写入文件流。

【讨论】:

【参考方案3】:

有很多方法可以记录。您可以使用自己的日志记录

else try Log4net 它是您完成的简单配置更改。

好文章http://www.codeproject.com/Articles/140911/log4net-Tutorial

只是为您提供的附加信息 reg ELMAH(另一种错误记录方式)Using ELMAH in a console application

【讨论】:

如果我想使用自己的日志记录怎么办? 看到这个***.com/questions/1742078/… 我想实现自己的记录器?那我该怎么办呢? 如果您的意思是要将某些内容记录到刚刚将 Excel 数据传输到的同一数据库中,则可以使用相同的连接在记录表上运行 INSERT 查询(如果你没有)。 谷歌你有很多选择! ***.com/questions/147557/error-logging-in-c-sharp【参考方案4】:

如果您可以使用第三方产品,请选择log4net。它是一个很棒的 .NET 日志记录框架。

【讨论】:

以上是关于从控制台应用程序记录 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥在尝试控制台记录我的 $.each 时出现错误 [关闭]

从控制台读取数据

从不同的进程C#调用方法[关闭]

如何从浏览器应用程序控制扫描仪? [关闭]

当从控制器启动的作业失败时,如何防止弹簧批处理关闭应用程序?

从欢迎屏幕推送视图控制器时遇到问题[关闭]