我想创建一个简单的日志文件并添加框架
这是我到目前为止所发现的。> br>
这个类是从另一个在循环中执行的类调用的,所以每次循环结束时它都会调用这个calss,这个类会写一个日志(及时创建的数据)。但是,我得到的只是每次用txt文件编写的新字符串,它只替换第一个字符串。
如何在新行中添加新字符串而不替换旧字符串?
我读了environment.newline
,但我没理解。
private void logFile()
{
StreamWriter logfile = null;
logfile = File.CreateText(Server.MapPath("/CCTV_Files/log.txt"));
try
{
logfile.Write(String.Format("{0:yyyyMMdd_hhmmss}", DateTime.Now) + " Frame added");
}
catch (IOException e)
{
Console.WriteLine(e);
}
catch (Exception e)
{
Console.WriteLine(e);
}
finally
{
if (logfile != null)
{
logfile.Close();
}
}
}
答案 0 :(得分:3)
您需要使用File.AppendText(),这是msdn帮助
private void logFile()
{
StreamWriter logfile = null;
logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));
try
{
logfile.Write(String.Format("{0:yyyyMMdd_hhmmss}", DateTime.Now) + " Frame added");
}
catch (IOException e)
{
Console.WriteLine(e);
}
catch (Exception e)
{
Console.WriteLine(e);
}
finally
{
if (logfile != null)
{
logfile.Close();
}
}
}
答案 1 :(得分:2)
logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));
而不是File.CreateText:
logfile = File.CreateText(Server.MapPath("/CCTV_Files/log.txt"));
答案 2 :(得分:2)
此方法等效于StreamWriter(String,Boolean)构造函数重载,append参数设置为false。如果path指定的文件不存在,则创建该文件。如果文件存在,则其内容将被覆盖。
选项1:您可以将StreamWriter与追加为True一起使用。
public StreamWriter( 字符串路径, 布尔附加 )
StreamWriter sw = new StreamWriter(fileName,true)
选项2:您也可以选择使用File.AppendText。
参考:
http://msdn.microsoft.com/en-us/library/system.io.file.createtext.aspx
http://msdn.microsoft.com/en-us/library/36b035cb.aspx
http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx
答案 3 :(得分:1)
试试这个。
string path = your file path;
using(StreamWriter sw = new StreamWriter(path,true))
{
sw.WriteLine("string here");
}
答案 4 :(得分:0)
答案 5 :(得分:0)
为什么要打开文件并管理它们呢? 使用log4net库: log4net
它非常棒,只需几行配置,您就可以拥有日志文件,其中包含大量信息和详细信息。
private static readonly ILog log = LogManager.GetLogger(typeof(Foo));
///In your method:
log.Info("Information");
log.Error("Error happened");
log.Debug("bla bla");
///etc.
这是一个日志文件示例:
176 [main] INFO examples.Sort - Populating an array of 2 elements in reverse order.
225 [main] INFO examples.SortAlgo - Entered the sort method.
262 [main] DEBUG SortAlgo.OUTER i=1 - Outer loop.
276 [main] DEBUG SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
290 [main] DEBUG SortAlgo.OUTER i=0 - Outer loop.
304 [main] INFO SortAlgo.DUMP - Dump of integer array:
317 [main] INFO SortAlgo.DUMP - Element [0] = 0
331 [main] INFO SortAlgo.DUMP - Element [1] = 1
343 [main] INFO examples.Sort - The next log statement should be an error message.
346 [main] ERROR SortAlgo.DUMP - Tried to dump an uninitialized array.
467 [main] INFO examples.Sort - Exiting main method.
如果您坚持使用自己的方式,只需使用此代码:
logfile = File.AppendText(Server.MapPath("/CCTV_Files/log.txt"));