我想让我的ASP.NET应用程序将行写入某个日志。 IIS是否提供了记录ASP.NET日志消息的任何内置方法?我想可能有办法捕获对System.Diagnostics.Debug.WriteLine()的调用,但我找不到任何办法。
答案 0 :(得分:8)
要捕获Debug.Write
和Debug.WriteLine
,请使用DebugView from sysinternals。
http://technet.microsoft.com/en-us/sysinternals/bb896647
当然你必须使用Debug=true
进行编译,否则根本不会调用这些函数。所以 Debug.Write是一个很好的方法,只能用于实时测试和调试你的应用程序,而不是一般的记录错误的解决方案。对于您希望保存错误的情况,我认为您需要使用其他用户建议的一个库,或直接在事件查看器上写下您的错误。
ps:由于某种原因,版本4.78无法在我的Windows XP上运行,我切换回4.77
答案 1 :(得分:7)
尝试Response.AppendToLog(),这将写入IIS日志文件。 这很好,因为它不需要任何额外的软件。唯一的缺点是您的日志文件可能很大。 我主要使用它来识别IIS日志中记录的内容。例如。在登录时写下用户名,您可以跟踪他们的会话。
答案 2 :(得分:1)
我通常做的是使用第三方日志框架并通过配置文件配置框架(即无需重新编译)。
我使用的框架是:
您必须在应用程序中插入相应的日志函数调用,才能实际触发正在创建的日志条目。
由于您的问题标题表明您要写入与IIS相同的日志(文件);我不知道如何解决这个要求(单凭我无法想象为什么你会这样做)
答案 3 :(得分:0)
我知道Debug.WriteLine写入调试输出。您可以在调试器中看到它并从那里保存。它不会写日志文件.. Debug Class
您可以尝试ELMAH ,
是一个完全应用程序范围的错误记录工具 可插拔。它可以动态添加到正在运行的ASP.NET Web中 应用程序,甚至是机器上的所有ASP.NET Web应用程序, 无需重新编译或重新部署。
或者您可以尝试Log4Net