C#.NET - 错误记录和相对文件路径

时间:2012-10-01 14:41:01

标签: c# file logging relative

我在C#中有一个类,可以在发生异常时将错误消息保存在日志文件中。现在我想将日志文件保存在包含应用程序(在我的例子中是一个网站)文件的同一文件夹中。我尝试使用Environment.CurrentDirectory,但它没有检索我的网站的路径。我该怎么做才能使用指向网站目录内的相对文件路径?

这是类的代码。如您所见,路径是绝对的。我想将其更改为指向我网站目录中文件夹的相对文件路径。

3 个答案:

答案 0 :(得分:3)

通常Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)返回当前程序集所在的路径。你可以用

string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log");

创建日志文件名。

问题实际上是操作系统是否允许登录应用程序的文件夹。此外,对于Web应用程序,日志文件将公开可见并可通过Web浏览器访问

答案 1 :(得分:2)

对于网站使用:

HttpContext.Current.Server.MapPath("~/");

答案 2 :(得分:0)

您也可以尝试这个解决方案:

string path  = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder";

这会将应用程序的基础目录和项目中的文件夹放在项目中!