写入ASP.NET中的日志文件

时间:2008-11-12 18:32:09

标签: asp.net logging

我使用File.AppendAllText方法将事件数据写入asp.net httphandler中的日志文件。我担心同时收到多个请求时会发生什么。 AppendAllText是否锁定了它写入的文件?

3 个答案:

答案 0 :(得分:9)

我建议使用TextWriterTraceListener,而不是试图管理自己。

设置和使用非常简单:

TextWriterTraceListener logListener = new TextWriterTraceListener("C:\log.txt", "My Log Name");
Trace.Listeners.Add(logListener);

然后记录一下:

Trace.WriteLine("Log this text");

使用起来非常简单,并且SQL,事件日志,文本文件等也有许多不同类型的侦听器。因此,如果要更改侦听器,则无需调整代码。

答案 1 :(得分:6)

不,你应该有一个保护日志文件写入的静态锁定对象,例如

public static object LockingTarget = new object();

public void LogToFile(string msg)
{
    lock(LockingTarget)
    {
        //append to file here as fast as possible
    }
}

答案 2 :(得分:1)

您可以使用My.Log写入日志文件。

编辑:如果使用FileLogTraceListener,则该侦听器是线程安全的。

执行此操作还允许您通过web.config文件控制和配置日志记录。