简单的C#日志文件

时间:2016-07-03 12:18:29

标签: c# logging

我有一个程序,我希望它用这种技术将东西记录到.txt文件中:

if (Directory.Exists(@"C:\Log"))
        {
            string[] start = { DateTime.Now + ": Program Started\n" };
            File.WriteAllLines(@"C:\Log\Log.txt", start);
            Console.Clear();
        }
        else
        {
            Directory.CreateDirectory(@"C:\Log");
            string[] start = { DateTime.Now + ": Program Started\n" };
            File.WriteAllLines(@"C:\Log\Log.txt", start);
            Console.Clear();
        }

使用这种技术我遇到了问题。当我在程序运行后检查日志文件时,我只找到一行而不是多行,因为这只是程序启动。所以看起来应该是这样的:

(时间):程序开始了 (时间):发生了一些事情 (时间):程序已关闭

而不是:

(时间):节目已关闭

6 个答案:

答案 0 :(得分:1)

你的程序应该是这样的:

if (!Directory.Exists(@"C:\Log")) {
    Directory.CreateDirectory(@"C:\Log");
}

...

// Your program runs, you add log lines
string[] start = { DateTime.Now + ": Program Started\n" };
File.AppendAllLines(@"C:\Log\Log.txt", start);
// End add log lines

...

答案 1 :(得分:0)

使用StreamWriter:

using (StreamWriter sw = new StreamWriter(@"C:\Log.txt", true))
{
  sw.WriteLine("Hello Log");
}

答案 2 :(得分:0)

每次调用时,

File.WriteAllLines都会覆盖您的文件。您想要将文本附加到文件中。您可以使用File.AppendAllLinesFile.AppendAllText,因为您看起来一次只能写一行。

答案 3 :(得分:0)

问题是您使用File.WriteAllLines,每次调用时都会创建一个新文件,以解决此问题,您可以使用{em>将追加行添加到文件中File.AppendAllLines ,然后关闭该文件。如果指定的文件不存在,File.AppendAllLines方法将创建一个文件。

答案 4 :(得分:0)

感谢您的回答,File.AppendAllLines有效!

答案 5 :(得分:0)

我运行这样的

if (!Directory.Exists(path))
 {
    DirectoryInfo di = Directory.CreateDirectory(path);
 }

File.AppendAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path, folderTarget, fileTarget), "Hello Log");
相关问题