我有一个日志类,用来记录各种信息。我想要添加自动记录当前页面的功能。
有没有方法可以获取我需要的信息?
谢谢。
从你的类中,你可以使用HttpContext.Current属性(在System.Web.dll中)。从那里,你可以创建一系列的属性:
底层对象是一个Page对象,所以如果你将它转换为该对象,然后使用任何你通常从Page对象内使用的对象,例如Request属性。
public static class MyClass
{
public static string GetURL()
{
HttpRequest request = HttpContext.Current.Request;
string url = request.Url.ToString();
return url;
}
}
我试着把它分解一下 :)
过去我也曾自己编写日志记录类并使用 Console.Writeln(),但实际上已经存在许多优秀的日志记录选项,那么为什么要重新造轮子呢?我几乎在所有地方都使用 NLog;它非常灵活,具有各种日志输出目标,包括控制台和文件,有大量的日志格式选项,并且针对各种 .net 框架版本设置起来非常简单。运行安装程序将向 Visual Studio 的添加新项目对话框中添加 NLog 配置文件选项。在代码中使用很简单:
// declare in your class
private static Logger logger = LogManager.GetCurrentClassLogger();
...
// use in your code
logger.Debug(() => string.Format("Url: {0}", HttpContext.Current.Request.Url));