您是否可以在Asp.net Mvc 2中为每个用户使用Enterprise Library 5创建日志文件?
到目前为止建议的解决方案有2种,在文件名部分使用%username%的环境变量,low level unmanaged code来完成。环境变量可能只会回退运行应用程序的用户(服务器进程登录),而不是表单的经过登录验证的用户名或userGuid。您是否可以在Asp.net Mvc 2中为每个用户使用Enterprise Library 5创建日志文件?
这是在EntLib 5中修复或更改的吗?我可以以某种方式配置一个或多个类别中的每个用户日志吗?这样我可以记录App_Data/User1.Recordings.log和App_Data/User1.Category2.log等?
您可以通过编程创建日志文件。看看这个链接一般参考文献:
http://www.davidhayden.com/blog/dave/archive/2006/02/14/2801.aspx
//Create filename
String fileName = <method_to_determine_logged_on_user> +".Recordings.log";
// Create a log file
Stream logFile = File.Create(fileName);
// Create the TextWriterTraceListener
TextWriterTraceListener listener = new TextWriterTraceListener(logFile);
// Add the listener to the list of TraceListeners
Trace.Listeners.Add(listener);
// Output the message
Trace.Write("My log message");
// Flush the output.
Trace.Flush();
的形式,我可以在Global.asax的某个地方执行此操作,以便记录器的任何呼叫者都可以访问它? – Maslow 2010-05-18 17:13:24
我会将这种类型的逻辑添加到新的静态日志记录类(例如Logger.cs)中。然后,您可以编写日志记录方法来接受记录消息的参数以及当前用户ID的参数等。静态日志记录方法可以从应用程序中的任何位置调用。 – 2010-05-18 18:55:18
虽然链接是针对企业库文章的,但代码与企业库无关。 – 2011-03-16 13:55:03
所以,你要在Web服务器上的日志信息,但每个用户都会有自己的日志文件。是对的吗?你在使用模拟吗? – 2010-05-18 14:00:34
不,它是基于登录表 – Maslow 2010-05-18 20:09:47