我有一个相当大的程序偶尔有一些奇怪的行为。在客户部署后,无法进行调试。但是允许使用日志文件,所以这就是我创建的。像这样:
TextWriter tw = new StreamWriter(@"C:\AS-log.txt", true);
tw.WriteLine("ValidateMetaData");
tw.Close();
这样的3行已经插入到许多地方的代码中,并提供了很好的日志信息。然而,这种方法存在两个问题:
对日志记录方式的任何建议可以做到这一点并且仍然很简单吗?
答案 0 :(得分:4)
Log4net是一个可以使用的简单框架。
答案 1 :(得分:4)
也许您可以尝试Microsoft的Enterprise库。它有一个非常好的日志应用程序块
答案 2 :(得分:3)
我建议使用log4Net。它具有巨大的潜力,您可能不需要,但在loog条目中为您提供简单的预定义格式。
在使用之前,yuo应该将其配置为应用程序的.config
文件。
这只是一个例子,你可以使用其他很容易在互联网上找到的人:
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
问候。
答案 3 :(得分:2)
您可以使用System.Diagnostics.Debug和System.Diagnostics.Trace的监听器。 通常这些是由编译选项控制的,但您可以根据配置选项附加监听器。
System.Diagnosics.Trace.WriteLine( “ValidateMetaData”);
这也允许您使用DebugView等进行实时观看
答案 4 :(得分:1)
一个简单的解决方案是让日志写一个类。在应用程序启动时,它会打开要写入的文件,并且有一个简单的方法Write
。然后,您可以简单地使用Log.Write("ValidateMetaData")
来减少内联使用的代码量,并停止必须始终打开和关闭文件。您还可以根据配置添加检查(最简单的方法是使用应用程序设置)。
答案 5 :(得分:0)
尝试log4net或nlog(我更喜欢nlog)
答案 6 :(得分:0)
如果你想要内置的东西,可以从config-file配置,请参阅http://msdn.microsoft.com/en-us/library/ms228993.aspx