StreamWriter 不会写入日志文件 [英] StreamWriter won't write to log file

查看:45
本文介绍了StreamWriter 不会写入日志文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果output.txt"尚不存在,此代码将在 C:\temp 中创建output.txt".但是, log.WriteLine(); 对我不起作用.当我打开文件时,我看不到它.这是为什么?

This code will create "output.txt" in C:\temp if it doesn't already exist. However, log.WriteLine(); doesn't work for me. When I open the file, I don't see it. Why is this?

private static string LogFile = @"C:\Temp\output.txt";
private StreamWriter log;
if (!File.Exists(@"" + LogFile))
{
    log = new StreamWriter(@"" + LogFile);
}
else {
    log = File.AppendText(@"" + LogFile);
}
log.WriteLine("["+DateTime.Now + "]: ");

推荐答案

您需要关闭 StreamWriter.最好为此使用 using 块,因为它保证 StreamWriter 将被关闭,即使抛出异常.

You need to close the StreamWriter. It's best to use a using block for this, as it guarantees that the StreamWriter will be closed, even if an exception is thrown.

using (var log = GetLog()){
    log.WriteLine("["+DateTime.Now + "]: ");
}

...

public StreamWriter GetLog(){
    if (!File.Exists(@"" + LogFile))
    {
        return new StreamWriter(@"" + LogFile);
    }
    else {
        return File.AppendText(@"" + LogFile);
    }
}

这篇关于StreamWriter 不会写入日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆