我强烈建议查看log4net来完成您的日志记录。它非常强大和灵活,并且具有基于您可以指定的大小滚动日志的内置方式。这不是您要在这里寻找的答案,但绝对值得研究。这是我们在调试期间记录日志的示例配置:
<log4net>
<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
<file value="ClientTools.log"/>
<appendToFile value="true"/>
<maximumFileSize value="3000KB"/>
<rollingStyle value="Size"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss} [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="GeneralLog"/>
</root>
<logger name="NHibernate" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="GeneralLog"/>
</logger>
</log4net>
app.config 文件中的这段代码将在应用程序文件夹中创建一个名为 ClientTools.log 的日志文件,以包括日期和时间在内的特定格式写入它,并将日志滚动到 3MB。
要使用记录器,我们在网页的 Init() 中执行此操作: public ILog log;
public void InitiateLogging()
{
log4net.Config.XmlConfigurator.Configure();
log = LogManager.GetLogger("MyApplication");
}
然后,当您想记录某些内容时,请执行以下操作:
log.Info("No resources available.");
// or
log.Fatal(exception.Message);
// or
log.Warn("Something bad may happen here.");
您不必担心创建流对象、关闭流、处理流等。而且它非常DRY。