如何在C#网页中每天创建一个日志文件来记录信息?

时间:2019-12-06 03:40:02

标签: c# logging system.io.file

我有成功的代码,可以在OnPostAsync期间创建并写入日志文件。 每次调用此页面时,它都会创建一个具有今天日期和时间的日志文件,并写入该日志文件。

我想每天创建一个日志文件并将其写入。我可以在内容中放入时间,而不用创建一个以今天和时间命名的新文件。 我假设我要检查一个具有今天日期的日志文件,如果不存在,我会写东西。如果存在,我只需添加我的东西即可。

这就是我用来为页面的每个帖子创建日志文件的地方:

var newFileName = "logs\\" + DateTime.Now.ToString().Replace("/","_").Replace(":","-").Replace(" ","__") + ".txt";
var webRootPath = _environment.WebRootPath;
var dataPath = Path.Combine(webRootPath, newFileName);

然后在OnPostAsync的末尾,我写任何我需要写的信息字符串。

var newCourseAfterSaveInfo = "New Course Saved ::: New Temp ID in Courses_New: blah blah blah ";

 System.IO.File.AppendAllLines(dataPath, new[] {newCourseAfterSaveInfo });

我已经在VB和VBA中做到了。如果文件和名称不存在,则正确的文件写入功能将创建一个文件和名称,否则将仅添加一行。但是我对使用C#做到这一点感到茫然。

3 个答案:

答案 0 :(得分:1)

这就是我在C#中使用的

1。将代码放入配置文件

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\Work\log\" />
  <appendToFile value="true"/>
  <countDirection value="-1"/>
  <rollingStyle value="Date" />
  <datePattern value="yyyyMMdd'.txt'" />
  <maxSizeRollBackups value="0" />
  <maximumFileSize value="10000KB" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>

2.show log

string logFile = DateTime.Now.ToString("yyyyMMdd") + ".txt";
if (!System.IO.File.Exists(logFile))
{
    System.IO.File.Create(logFile);   
}
appendToLogFile(message);

答案 1 :(得分:0)

我将在配置文件中使用具有适当命名约定的Serilog或log4net。如果您想采用当前的方法,请使用类似以下的方法指定当天的同一文件:

var newFileName = "logs\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";

答案 2 :(得分:0)

您可以尝试使用C#。

导入参考

if(edge[v][column] == 1 && vertex[column].getPushed())

使用下面的代码。

using System.IO;