2010-08-13 171 views
1

我在职业生涯中第一次设计控制台应用程序。该控制台应用程序是一个引擎,每天晚上在特定时间执行任务。我打算使用Windows任务计划程序来安排此应用程序。c#控制台应用程序的记录器应用程序

现在我需要记录此任务的每一步。我不确定哪种记录器最适合这种应用。该日志消息可以存储到数据库,xml或平面文件。

您可以针对这种情况提供最佳记录器应用程序的建议吗?

+0

http://stackoverflow.com/questions/126540/what-is-your-net-logging-framework-of-choice的可能重复。 – 2010-08-13 10:11:06

回答

5

尝试NLog它基本上是Log4j到.NET的端口。您可以通过编程或通过.xml文件进行配置。第二个选项很方便,因为每次您想更改日志记录选项时都不必重新编译项目。在代码中常见的使用看起来像。

class MyClass 
{ 
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); 

    public void MyMethod() 
    { 
     // available logging levels TRACE,INFO,DEBUG,WARN,ERROR, FATAL 
     Logger.Debug("Debug message"); 
    } 
} 
+0

是否有任何工具可用于查看从NLog写入文件的日志消息?你如何查看这些日志文件? – JPReddy 2010-08-13 10:54:33

+0

取决于输出。 Nlog可以将日志写入到tcp服务器,数据库,文本文件等等。 – jgauffin 2010-08-13 11:02:57

+0

基本上'tail -f' :)。但你可以尝试[baretail](http://www.baremetalsoft.com/baretail/)它可以解析任何日志文件或称为[链锯]的Apache工具(http://logging.apache.org/chainsaw/index.html )为log4j设计 – jethro 2010-08-13 11:06:37

5

我们通常使用log4net来记录我目前正在维护的应用程序。工作得很好。然后我们有脚本将日志压缩成zip文件以节省磁盘空间(因为某些应用程序在日志记录中非常冗长)。

+0

log4net是否与.net 4.0兼容? – JPReddy 2010-08-13 10:11:40

+0

@JayaprakashReddy:我自己没有尝试过,但如果出现任何重大问题,我会感到惊讶。这里有一个关于这个主题的讨论:http://stackoverflow.com/questions/1866735/log4net-and-net-4-0 – 2010-08-13 10:22:53

+1

log4net有一个依赖于System.Web,所以你不能在一个。 NET 4客户端配置文件项目。他们的JIRA系统已经提出了一个问题,但目前似乎没有太多的项目移动 - 最近的发布是在2年前 – 2010-08-13 10:29:32

2

在.NET上最常见的日志框架是Log4NetNLog,虽然也有其他人。