你有更好的方法来创建日志吗?
本文关键字:创建 日志 方法 更好 | 更新日期: 2023-09-27 18:03:17
我有一个相当大的程序,偶尔有一些奇怪的行为。在客户部署了它之后,就不可能进行调试了。但是允许使用日志文件,所以这就是我所创建的。像这样:
TextWriter tw = new StreamWriter(@"C:'AS-log.txt", true);
tw.WriteLine("ValidateMetaData");
tw.Close();
像这样的3行已经在许多地方插入到代码中,并且确实提供了很好的日志信息。然而,这种方法有两个问题:
- 当日志记录的行数比实际代码多时,代码看起来非常混乱。
- 我希望能够通过配置文件开关登录。
有什么建议的方式记录,可以做到这一点,仍然是简单的?
也许你可以试试微软的企业库。它有一个日志应用程序块,工作得很好
http://msdn.microsoft.com/en-us/library/ff648951.aspxLog4net是一个可以使用的简单框架。
http://logging.apache.org/log4net/建议使用log4Net。它有一个巨大的潜力,您可能不需要,但可以在日志条目中提供简单的预定义格式。
在使用它之前,您应该将其配置为应用程序的.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>
问候。
您可以使用System.Diagnostics.Debug和System.Diagnostics.Trace的侦听器。通常这些是由编译选项控制的,但你可以根据你的配置选项附加侦听器。
System.Diagnosics.Trace.WriteLine("ValidateMetaData");
这也允许你观看DebugView等的直播
一个简单的解决方案是将日志写入一个类。在应用程序启动时,它打开要写入的文件,并且有一个简单的方法Write
。然后,您可以简单地使用Log.Write("ValidateMetaData")
,它减少了您使用内联的代码量,并停止您必须始终打开和关闭文件。您还可以根据配置添加检查(最简单的方法是使用应用程序设置)。
尝试log4net或nlog(我更喜欢nlog)
- http://logging.apache.org/log4net/
- http://nlog-project.org/
如果您想从config-file中获得内置和可配置的内容,请参阅http://msdn.microsoft.com/en-us/library/ms228993.aspx