我正在使用Outlook插件尝试将日志记录添加到代码中。我计划接下来看看Log4net,因为每个人都提到这是一个更好的选择,但是现在我试图使用内置的System.Diagnostics类进行日志记录。此外,我不确定是否可以使用Log4Net写入%appdata%
或者是否需要使用配置文件。
所以,我的问题是,我已经收到了一份我写的文件 -
public static string logFilePath = Environment.ExpandEnvironmentVariables("%userprofile%") + @"\AppData\Roaming\OutLookPlugin\Application.log";
public static FileStream hlogFile = new FileStream(logFilePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
我希望能够将文件缩小以使其不会变大
public static void PerformFileTrim(string filename)
{
var FileSize = Convert.ToDecimal((new System.IO.FileInfo(filename)).Length);
if (FileSize > 250000)
{
var file = File.ReadAllLines(filename).ToList();
var AmountToCull = (int)(file.Count * 0.33);
var trimmed = file.Skip(AmountToCull).ToList();
File.WriteAllLines(filename, trimmed);
}
}
我知道如果我关闭文件(即 - hlogFile.Close();
)我可以修剪我的文件,但我不想关闭我的文件,因为我的日志记录将停止。
鉴于我正在使用Outlook插件,我唯一能想到的就是尝试使用启动
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
//trim file here
}
在记录开始修剪文件之前,但我不想影响磁盘IO的加载时间性能。
有没有办法在不关闭的情况下写入文件?
答案 0 :(得分:-1)
我不会在运行时执行文件大小测试但仅在Outlook结束时 - 然后记录结束。