我有成功的代码,可以在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#做到这一点感到茫然。
答案 0 :(得分:1)
这就是我在C#中使用的
<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>
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;